Linux
如何製作自定義 docker 鏡像可以定義 ENV 變數
我創建了一個自定義的自製 docker 映像,其中包含 vhosts 配置,執行容器時如何在 ENV 中定義變數,如
ServerName
, 。DocumentRoot
謝謝,非常感謝所有答案
您可以
${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