Hed*_*dge 4 docker dockerfile docker-compose
我docker-compose.yml
看起来像这样:
version: '2'
services:
myapp:
build:
context: .
environment:
- GITLAB_USER=myusername
Run Code Online (Sandbox Code Playgroud)
我想在 a 中使用该环境变量,Dockerfile
但它不起作用:
FROM node:7
ENV GITLAB_USER=${GITLAB_USER} \
RUN echo '${GITLAB_USER}'
Run Code Online (Sandbox Code Playgroud)
回声只是: ${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}'
Run Code Online (Sandbox Code Playgroud)
你的 docker-compose.yml 文件看起来像:
version: '2'
services:
myapp:
build:
context: .
args:
- GITLAB_USER=${GITLAB_USER}
Run Code Online (Sandbox Code Playgroud)
在${GITLAB_USER}
该YML文件中的值将与您的内部设定的值来替换.env
文件。
归档时间: |
|
查看次数: |
4276 次 |
最近记录: |