Sping Boot 原生镜像插件:mvn -Pnative spring-boot:build-image
如何传递参数和环境变量?
如果我使用Dockerfile,我可以配置arg和环境变量,如
FROM openjdk:17-jdk-slim-buster
RUN apt-get update -y
RUN apt-get install -y libfreetype6
ARG SPRING_DATASOURCE_URL
ENV SPRING_DATASOURCE_URL $SPRING_DATASOURCE_URL
EXPOSE ${SPRING_DATASOURCE_URL}
ARG SPRING_DATASOURCE_USERNAME
ENV SPRING_DATASOURCE_USERNAME $SPRING_DATASOURCE_USERNAME
EXPOSE ${SPRING_DATASOURCE_USERNAME}
ARG SPRING_DATASOURCE_PASSWORD
ENV SPRING_DATASOURCE_PASSWORD $SPRING_DATASOURCE_PASSWORD
EXPOSE ${SPRING_DATASOURCE_PASSWORD}
ARG SPRING_JPA_HIBERNATE_DDL_AUTO
ENV SPRING_JPA_HIBERNATE_DDL_AUTO $SPRING_JPA_HIBERNATE_DDL_AUTO
EXPOSE ${SPRING_JPA_HIBERNATE_DDL_AUTO}
COPY ./target/demo-0.0.1-SNAPSHOT.jar /opt/demo-0.0.1-SNAPSHOT.jar
ENV TZ=Asia/Ho_Chi_Minh
ENTRYPOINT ["java","-jar","/opt/demo-0.0.1-SNAPSHOT.jar"]
Sping Boot 原生镜像插件,我没有看到Dockerfile,如何设置ARG,env变量?
1条答案
按热度按时间vktxenjb1#
与使用
spring-boot:build-image
和Paketo buildpack时在Dockerfile
中所做的等效操作是为Paketo项目中记录的Paketo环境变量buildpack设置运行时环境变量:但是,将用户名和密码等敏感值放在这样的图像中并不是一个好主意,因为任何可以下载该图像的人都可以看到环境变量的值。您应该考虑在运行映像时而不是在构建映像时设置这些值。
一种方法是使用Paketo文档中描述的绑定。一些绑定会被Spring Cloud Bindings库自动使用,Paketo buildpacks会自动添加到镜像中。Sping Boot
configtree
功能还可以用于在运行时读取映像中的绑定文件。