使用dockerfile制作apache编译安装镜像
创建目录结构
[ root@slave1 ~]
[ root@slave1 httpd]
[ root@slave1 httpd]
[ root@slave1 azb]
apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.54.tar.gz
编写entrypoint.sh脚本
[ root@slave1 httpd]
sed -i '/^#ServerName/s/#//g' /usr/local/apache/conf/httpd.conf
exec "$@ "
[ root@slave1 httpd]
编写dockerfile文件
[ root@slave1 httpd]
FROM centos
LABEL MAINTAINER = 'cl 3042277527@qq.com'
ENV apache_version = 2.4 .54
ENV PATH /usr/local/apache/bin:$PATH
ADD azb/apr-1.7.0.tar.gz /usr/src/
ADD azb/apr-util-1.6.1.tar.gz /usr/src
ADD azb/httpd-${apache_version} .tar.gz /usr/src
ADD entrypoint.sh /
RUN rm -rf /etc/yum.repos.d/* && \
cd /etc/yum.repos.d/ && \
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo && \
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo && \
yum clean all && yum makecache && \
yum -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ make && \
cd /usr/src/apr-1.7.0 && \
sed -i '/$RM "$cfgfile"/d' configure && \
./configure --prefix= /usr/local/apr && \
make && make install && \
cd && \
cd /usr/src/apr-util-1.6.1 && \
./configure --prefix= /usr/local/apr-util --with-apr= /usr/local/apr && \
make && make install && \
cd && \
cd /usr/src/httpd-${apache_version} && \
./configure --prefix= /usr/local/apache \
--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
EXPOSE 80
CMD [ "/usr/local/apache/bin/httpd" ,"-D" ,"FOREGROUND" ]
ENTRYPOINT [ "/bin/bash" ,"/entrypoint.sh" ]
WORKDIR /usr/local/apache
//创建镜像
[ root@slave1 ~]
[ root@slave1 ~]
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost/chenlang123/httpd v0.2 d492d30212f9 35 seconds ago 705 MB
运行容器测试
[ root@slave1 ~]
1363daa315025f49732503e9f85ddb644f62d48d4798e84ae8bbccc66958dd36
[ root@slave1 ~]
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1363daa31502 localhost/chenlang123/httpd:v0.2 /usr/local/apache.. . 9 seconds ago Up 9 seconds ago 0.0 .0.0:80-> 80 /tcp web
上传镜像到dockerhub
[ root@slave1 ~]
[ root@slave1 ~]
Getting image source signatures
Copying blob 30f77fe5fa21 done
Copying blob bda83f7d9a28 done
Copying blob 3733aa023088 done
Copying blob 313d1a56c9fe done
Copying blob 186de0612c3c done
Copying blob 2653d992f4ef done
Copying config d492d30212 done
Writing manifest to image destination
Storing signatures