gpt4 book ai didi

docker - 如何在 Dockerfile 中使用来自 docker-compose.yml 的环境变量?

转载 作者:行者123 更新时间:2023-12-03 21:44:09 28 4
gpt4 key购买 nike

我的 docker-compose.yml看起来像这样:

version: '2'
services:
myapp:
build:
context: .
environment:
- GITLAB_USER=myusername

我想在 Dockerfile 中使用该环境变量但它不起作用:
FROM node:7
ENV GITLAB_USER=${GITLAB_USER} \
RUN echo '${GITLAB_USER}'

回声只是: ${GITLAB_USER}
我怎样才能做到这一点,以便我可以使用来自 .env 的变量Docker 中的文件(通过 docker-compose)?

最佳答案

有两个不同的时间框架需要理解。构建镜像与运行容器是分开的。第一部分使用 Dockerfile 来创建你的镜像。第二部分采用生成的图像和所有设置(例如环境变量)来创建容器。

在 Dockerfile 中,RUN行发生在构建时。如果要将参数传递到构建中,可以使用构建参数。您的 Dockerfile 将如下所示:

FROM node:7
ARG GITLAB_USER=default_user_name
# ENV is optional, without it the variable only exists at build time
# ENV GITLAB_USER=${GITLAB_USER}
RUN echo '${GITLAB_USER}'

你的 docker-compose.yml 文件看起来像:
version: '2'
services:
myapp:
build:
context: .
args:
- GITLAB_USER=${GITLAB_USER}
${GITLAB_USER} yml 文件中的值将替换为您在 .env 中设置的值文件。

关于docker - 如何在 Dockerfile 中使用来自 docker-compose.yml 的环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48523346/

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