我在docker-compose的帮助下在docker中运行LAMP堆栈,对于web服务器,我使用来自https://hub.docker.com/_/httpd的官方镜像。httpd容器由Dockerfile创建:
ARG APACHE_VERSION
FROM httpd:$APACHE_VERSION
RUN apt-get update;\apt-get upgrade;\a2enmod rewrite
COPY demo.apache.conf /usr/local/apache2/conf/demo.apache.conf
RUN echo "Include /usr/local/apache2/conf/demo.apache.conf" \
>> /usr/local/apache2/conf/httpd.conf
我尝试使用\a2enmod rewrite
命令启用mod_rewrite,但在构建过程中出现以下错误:
/bin/sh: 1: a2enmod: not found
ERROR: Service 'apache' failed to build: The command '/bin/sh -c apt-get update;\apt-get upgrade;\a2enmod rewrite' returned a non-zero code: 127
a2 enmod失败了--从我的阅读来看,它只在debian系统中可用,httpd基础镜像没有它。
如何在构建过程中为这个docker官方httpd镜像启用mod_rewrite模块?
2条答案
按热度按时间yyhrrdl81#
最后我发现了。我必须在apache.conf文件中添加以下行来启用该模块:
daupos2t2#
您不需要
a2enmod
来为Docker官方httpd镜像启用某些模块。您所要做的就是显式地将模块添加到apache.conf文件中。所以在我的例子中,我需要启用mode_rewrite,这是我的示例Dockerfile: