当我尝试"AH00111: Config variable ${APACHE_RUN_DIR} is not defined"运行时,Docker文件抛出错误



我正在试用Docker。

我正在尝试将apche2安装到ubuntu镜像中。

FROM ubuntu
RUN echo "welcome to yellow pages"
RUN apt-get update
RUN apt-get install -y tzdata
RUN apt-get install -y apache2
ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2
RUN echo 'Hello, docker' > /var/www/index.html
ENTRYPOINT ["/usr/sbin/apache2"]
CMD ["-D", "FOREGROUND"]

我在网上找到了一个参考

我添加了这行";RUN apt-get-install-y-tzdata";因为它要求提供tzdata选项并停止图像创建。

现在,当我运行我的图像时,我得到了以下错误

[Thu Jan 07 09:43:57.213998 2021] [core:warn] [pid 1] AH00111: Config variable ${APACHE_RUN_DIR} is not defined
apache2: Syntax error on line 80 of /etc/apache2/apache2.conf: DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot

我是docker的新手,理解它对我来说有点困难。

有人能帮我摆脱困境吗?

这似乎是Apache的问题,而不是docker的问题。您的conf似乎有错误。您有一个名为DefaultRuntimeDir的参数,它指向的是docker中不存在的ad目录。查看您的配置文件,并确保您在其中指定的目录存在于docker中。

你可以在docker内玩,只需:

docker build -t my_image_name .
docker run -it --rm --entrypoint /bin/bash my_image_name
# now you are in your docker container, you can check if your directories exist

在不知道你的配置的情况下,我只需再添加一个RUN(我创建了这个路径,你可以将其更改为你喜欢的任何路径(

ENV APACHE_RUN_DIR /var/lib/apache/runtime
RUN mkdir -p ${APACHE_RUN_DIR}

顺便说一句,我也会把所有的RUN组合成一个这样的单曲:

RUN echo "welcome to yellow pages" 
&& apt-get update 
&& apt-get install -y tzdata apache2 
&& rm -rf /var/lib/apt/lists/* 
&& mkdir -p /var/www 
&& echo 'Hello, docker' > /var/www/index.html

相关内容

最新更新