自定义一个Apache2和PHP7.4 的Dockerfile镜像

背景需求,Typecho需要PHP和apache2环境,但是官方提供的过于臃肿有500M的样子

所以就有了如下案例

nano Dockerfile

输入如下内容

FROM debian:latest
# 换源提速
RUN echo "deb http://mirrors.aliyun.com/debian bullseye main" > /etc/apt/sources.list && \
    echo "deb http://mirrors.aliyun.com/debian-security bullseye-security main" >> /etc/apt/sources.list  && \
    echo "deb http://mirrors.aliyun.com/debian bullseye-updates main" >> /etc/apt/sources.list
RUN apt-get update
RUN apt-get install apache2 libapache2-mod-php php-mysql php-gd php-curl php-mbstring php  php-common php-fpm  php-horde-util php-mdb2 php-mysql php-net-url2 php-pear  php-xml php-xml-htmlsax3  php-xml-svg php-xmlrpc  php-cli php-common php-curl php-fpm php-gd php-json php-mbstring php-readline php-xml php-xmlrpc -y
#追加配置
RUN sh -c "echo 'ServerName localhost:80' >> /etc/apache2/apache2.conf"
#地址重写功能(实现子域名功能)
RUN a2enmod rewrite
#禁用模块(不禁用讲无法启用PHP7.4)
RUN a2dismod mpm_event
#支持PHP解析
RUN a2enmod php7.4
# 启动apache2
#清理
RUN apt-get clean
#对外暴漏默认端口,即不指定但默认提供
EXPOSE 80 443
CMD ["/usr/sbin/apache2ctl","-D","FOREGROUND"]

觉得语法不行,请自行整合成一行

构建镜像并指定镜像名称和标签

docker build -t apache2_PHP7.4:1 -f Dockerfile .

运行镜像

docker run -d -p 800:80 -v /mnt/mmcblk0p3/html:/var/www/html --name apache2_PHP7.4 apache2_PHP7.4:1

猜你喜欢

转载自blog.csdn.net/u013833472/article/details/130656333