21. 环境变量 docker-compose -> docker-compose.yml -> Dockerfile -> *.jar
源码:https://github.com/guaguaerhao/docker-env-demo
1. 环境变量 docker-compose -> docker-compose.yml
1.1 在 docker-compose 中,添加环境变量
VAR1=local docker-compose up --build
1.2 在 docker-compose.yml 中接受变量
# docker-compose.yml
version: '3.0'
services:
img:
container_name: img1
build:
context: .
environment:
VAR1: ${VAR1}
1.3 测试 docker-compose.yml 配置
VAR1=local docker-compose config
1.4 将会看到如下信息
services:
img:
build:
context: 你自己的当前目录
environment:
VAR1: local
version: '3.0'
2. 环境变量 docker-compose.yml -> Dockerfile -> .jar
2.1 在 Dockerfile 中接受 docker-compose.yml 变量
FROM openjdk:8-jre
# 挂载目录
VOLUME /home/intelligent-posture
# 创建目录
RUN mkdir -p /home/intelligent-posture
# 指定路径
WORKDIR /home/intelligent-posture
# 复制jar文件到路径
COPY ./demo.jar /home/intelligent-posture/demo.jar
# 默认值
#ARG VAR1=prod
ENV VAR1 ${VAR1}
RUN echo ${VAR1}
ENTRYPOINT ["java","-Dspring.profiles.active=${VAR1}","-jar", "demo.jar"]
从上方可以看出 VAR1 变量贯穿所有流程。