有没有机会将变量从docker-compose传递到apache.conf
文件?
我有带变量的Dockerfile
ENV APACHE_SERVER_NAME localhost
ENV APACHE_DOCUMENT_ROOT /var/www/html
我有apache.conf,我在构建图像时将其复制到 / etc / apache2 / sites-available /
ServerName ${APACHE_SERVER_NAME}
DocumentRoot ${APACHE_DOCUMENT_ROOT}
我有docker-compose.yml
environment:
- APACHE_SERVER_NAME=cms
- APACHE_DOCUMENT_ROOT=/var/www/html/public
当我运行docker-compose
时,没有任何事情发生,容器中的apache.conf
也没有改变。
我完全错了,这是不可能的,还是我错过了任何一个步骤或点?
谢谢
答案 0 :(得分:0)
让我解释一下传递环境变量的方法之间的一些小差异:
用于构建时间和运行时入口点的环境变量
docker run -e VAR=value...
与之前相同,但对于cli。仅适用于构建时间的环境变量
每个容器和构建都可以访问环境变量
.env
文件执行docker run
或docker-compose
。.env
文件。当您尝试为apache conf文件定义变量时,也许您应该尝试使用apache作为入口点,或者只在.env
文件中定义它们。