【发布时间】:2018-06-26 19:54:41
【问题描述】:
我试图了解 docker-compose.yml 文件中的args: 用法,以便我可以在构建运行时设置环境变量。我明白,如果我有一个 .env 文件,那么它会自动设置它并能够访问我的 Dockerfile 内部,例如,
FROM node:alpine
ARG NODE_ENV
ENV NODE_ENV=${NODE_ENV} // --> This works fine if .env file is present
但如果我想通过environment:(在 docker-compose.yml 中并且没有 .env 文件)加载这些值,
version: '3.3'
services:
web:
image: web
environment:
- NODE_ENV=dev
build:
context: .
args:
- NODE_ENV
ports:
- 8100
然后它在 Dockerfile 中返回一个空白/空值。
我发现在 Dockerfile 中(或在构建期间)无法直接访问环境变量,但在硬编码环境变量时env_file 的工作原理却没有。
提前感谢您的帮助。
【问题讨论】:
标签: docker docker-compose dockerfile