Dockerfile制作http镜像(以alpine做底层镜像为例)

[root@node0 ~]# tree httpd-installa
httpd-installa
├── Dockerfile
└── packages
    ├── apr-1.7.0.tar.gz
    ├── apr-util-1.6.1.tar.gz
    └── httpd-2.4.46.tar.bz2

1 directory, 4 files

[root@node0 ~]# cat httpd-installa/Dockerfile 
FROM alpine:latest

LABEL MAINTAINER "fxx fxx@123.com"

ENV PATH /usr/local/apache/bin/:$PATH
ENV aprver 1.7.0
ENV aprutilver 1.6.1
ENV apachever 2.4.46

EXPOSE 80

ADD packages/apr-${aprver}.tar.gz /usr/local/src
ADD packages/apr-util-${aprutilver}.tar.gz /usr/local/src
ADD packages/httpd-${apachever}.tar.bz2 /usr/local/src

RUN adduser -SHs /sbin/nologin apache && \
    sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \
    apk add --no-cache -U pcre-dev openssl openssl-dev libtool expat-dev libtool libxml2-dev gd-dev g++ make zlib-dev && \
    cd /usr/local/src/apr-${aprver} && ./configure --prefix=/usr/local/apr &&  \
    make && make install && \
    cd /usr/local/src/apr-util-${aprutilver} &&  ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/ && \
    make && make install && \ 
    cd /usr/local/src/httpd-${apachever} && \
    ./configure --prefix=/usr/local/apache \
    --sysconfdir=/etc/httpd24 \   
    --enable-so \     
    --enable-ssl \    
    --enable-cgi \   
    --enable-rewrite \   
    --with-zlib \    
    --with-pcre \
    --with-apr=/usr/local/apr \  
    --with-apr-util=/usr/local/apr-util/ \
    --enable-modules=most \       
    --enable-mpms-shared=all \   
    --with-mpm=prefork && \
    make && make install && \
    sed -i '/#ServerName/s/#//g' /etc/httpd24/httpd.conf && \
    ln -s /usr/local/apache/include/ /usr/include/httpd && \
    rm -rf /usr/local/src/*

WORKDIR /usr/local/apache/

CMD /usr/local/apache/bin/apachectl -DFOREGROUND

posted on 2021-03-08 16:31  fxx013  阅读(166)  评论(0编辑  收藏  举报

导航