Docker环境变量问题,比如,在Docker Hub上下载了一个nginx镜像,现在要把我自己的配置文件用上去,看到说可以有三种方式:
1、用环境变量传递配置。
2、用数据卷,把配置文件放到数据卷中。
3、修改镜像,保存为新的镜像。
现在,我想采用第1种方法,文档中关于环境变量的内容如下:
可是怎么配置,仍然有点不清楚。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
谁告诉你环境变量可以用于传输配置文件了…
可以用环境变量的意思是,有些软件既能识别环境变量中提供的配置,又能识别文件形式的配置,不过,很不幸,Nginx不在此列。
以wget为例,当设定HTTP代理时,可以选用以下任一方式:
在配置文件中加一行
http_proxy = http://example.com/xxx
将系统环境变量
$http_proxy
设定为http://example.com/xxx
两种方法的作用是相同的。
当然,你可以在Docker容器里写一个Shell脚本,根据环境变量来修改配置文件的内容,但这就是另一个话题了。Github上有不少实现类似功能的工具,如Tiller。
补充一个资料:How Should I Get Application Configuration into my Docker Containers?
哦,在启动容器的时候要带参数,比如:
./docker run --detach --name wordpress --net wordnet --publish 80:80 --env WORDPRESS_DB_HOST=mysql --env WORDPRESS_DB_PASSWORD=xxxxxxxx wordpress:4.4
当然在容器启动命令里要处理带进来的参数:
cat /entrypoint.sh