公众号原文
https://mp.weixin.qq.com/s?__biz=MzUyNzk4MjA5NQ==&mid=2247483786&idx=1&sn=873e9b1e17be0ab91f927904541d18fe&chksm=fa760aeacd0183fc598a0c777d0dae7e417c975c820d38fd05f05cab6adeb0b2dbae66bcbafd&token=838806874&lang=zh_CN#rdmp.weixin.qq.com一日一言
没有任何动物比蚂蚁更勤奋,然而它却最沉默寡言。
——富兰克林
前言
reference: https:// vsupalov.com/docker-bui ld-time-env-values/
很多时候,我们需要在docker镜像中加入环境变量,本人了解的有2种方法可以做到
第一种
使用docker run --env VARIABLE=VALUE image:tag
直接添加变量,适用于直接用docker启动的项目
root@ubuntu:/home/vickey/test_build# docker run --rm -it --env TEST=2 ubuntu:latest
root@2bbe75e5d8c7:/# env |grep "TEST"
TEST=2
第二种
使用dockerfile的ARG
和ENV
添加变量,适用于不能用docker run
命令启动的项目,如k8s
ARG只在构建docker镜像时有效(dockerfile的RUN指令等),在镜像创建了并用该镜像启动容器后则无效(后面有例子验证)。但可以配合ENV指令使用使其在创建后的容器也可以生效。
ARG buildtime_variable=default_value # if not set default_value buildtime_variable would be set ''
ENV env_var_name=$buildtime_variable
在构建映像时,可以使用--build-arg buildtime_variable=other_value
覆盖dockerfile里的变量值default_value
</