gpt4 book ai didi

docker - 在 Dockerbuild 文件中使用 docker-compose 环境变量

转载 作者:IT老高 更新时间:2023-10-28 12:40:11 24 4
gpt4 key购买 nike

拥有以下 docker-compose 文件:

db:
build: .
environment:
- MYSQL_ROOT_PASSWORD=password
- ENV=test
env_file: .env

有什么方法可以使用 docker-compose.yml 中声明的环境变量(作为环境或在 env_file 中声明)作为 Dockerfile 的一部分,而不在 Dockerfile 中声明它们?像这样的:

FROM java:7
ADD ${ENV}/data.xml /data/
CMD ["run.sh"]

最佳答案

虽然这个问题是很久以前提出的,但这里有一个类似问题的答案:Pass environment variables from docker-compose to container at build stage

基本上,要在容器构建时使用变量,必须在 docker-compose.yml 中定义变量:

build:
context: .
args:
MYSQL_ROOT_PASSWORD: password
ENV: test

然后使用 ARGDockerfile 中引用它:

ARG MYSQL_ROOT_PASSWORD
ARG ENV
ADD ${ENV}/data.xml /data/

关于 *.env 文件中定义的环境变量,我认为它们不能在构建时传递给容器。

关于docker - 在 Dockerbuild 文件中使用 docker-compose 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29261811/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com