我有一个需要两个环境变量的 Dockerfile:
ARG AWS_ACCESS_KEY_ID
ARG AWS_SECRET_ACCESS_KEY
build:
# ...
args:
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
run if [ -z "$AWS_ACCESS_KEY_ID" ]; then unset AWS_ACCESS_KEY_ID; fi
run if [ -z "$AWS_SECRET_ACCESS_KEY" ]; then unset AWS_SECRET_ACCESS_KEY; fi
run env # see if set
最佳答案
不同 run
在 Dockerfile
互不影响,为达成目标,建议合二为一run
,如下所示,仅供引用:
run if [ -z "$AWS_ACCESS_KEY_ID" ]; then unset AWS_ACCESS_KEY_ID; fi && \
if [ -z "$AWS_SECRET_ACCESS_KEY" ]; then unset AWS_SECRET_ACCESS_KEY; fi && \
env
AWS_ACCESS_KEY_ID
在 env
中被设置为空值.docker-compose build --no-cache
去测试。ENV
设置在 Dockerfile
同时,没有 env for this variable set
在 HOST 中,ARG
在 Dockerfile
将自动更改为 one ENV variable
当 docker build 时,如 ARG
没有设置值,所以它是空的。
https://stackoverflow.com/questions/52715672/