![](/img/trans.png)
[英]Get environment variable from Dockerfile or docker-compose.yml
[英]How to use an environment variable from a docker-compose.yml in a Dockerfile?
我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}
我如何才能完成這項工作,以便可以使用Docker內部.env
文件中的變量(通過.env
-compose)?
有兩個不同的時間范圍需要理解。 構建映像與運行容器是分開的。 第一部分使用Dockerfile創建映像。 第二部分采用生成的圖像和所有設置(例如環境變量)來創建容器。
在Dockerfile內部, RUN
行在構建時發生。 如果要將參數傳遞到構建中,則可以使用構建arg。 您的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}
yml文件中的${GITLAB_USER}
值將替換為.env
文件中設置的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.