Linux

如何製作自定義 docker 鏡像可以定義 ENV 變數

  • October 7, 2021

我創建了一個自定義的自製 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

引用自:https://serverfault.com/questions/1079861