YonzLeon Asked: 2021-10-08 04:26:21 +0800 CST2021-10-08 04:26:21 +0800 CST 2021-10-08 04:26:21 +0800 CST 如何制作自定义 docker 镜像可以定义 ENV 变量 772 我创建了一个自定义的自制 docker 映像,其中包含 vhosts 配置,运行容器时如何在 ENV 中定义变量,如ServerName, 。DocumentRoot 谢谢,非常感谢所有答案 linux docker docker-compose 1 个回答 Voted Best Answer Gerald Schneider 2021-10-08T05:10:40+08:002021-10-08T05:10:40+08:00 您可以${APACHE_DOCUMENT_ROOT}在 Apache 配置文件中使用该符号。 我从这个未回答的问题中举了一个例子: <VirtualHost _default_:80> ServerSignature Off ErrorLog ${APACHE_LOG_DIR}/000-default-error.log CustomLog ${APACHE_LOG_DIR}/000-default-access.log combined DocumentRoot ${APACHE_DOCUMENT_ROOT} <Directory ${APACHE_DOCUMENT_ROOT}> Options FollowSymLinks AllowOverride all Require all granted </Directory> </VirtualHost> 一个非常基本的 Dockerfile: FROM httpd:2.4 COPY *.conf /usr/local/apache2/conf/ 然后我开始构建容器: mkdir {log,htdocs} echo "hi" > htdocs/index.html docker run -d --rm -e APACHE_LOG_DIR=/var/log/apache2 \ -e APACHE_DOCUMENT_ROOT=/var/www/htdocs/ -v $PWD/htdocs:/var/www/htdocs -v $PWD/log:/var/log/apache2/ -P httpd:test 它有效。 $ curl http://localhost:32768/ hi $ ls -l log/ total 4 -rw-r--r-- 1 root root 85 Oct 7 15:06 000-default-access.log -rw-r--r-- 1 root root 0 Oct 7 15:05 000-default-error.log
您可以
${APACHE_DOCUMENT_ROOT}
在 Apache 配置文件中使用该符号。我从这个未回答的问题中举了一个例子:
一个非常基本的 Dockerfile:
然后我开始构建容器:
它有效。