构建haproxy镜像
[root@localhost docker]# tree haproxy/
haproxy/
├── conf
│ └── RSS
├── Dockerfile
└── files
├── haproxy-2.4.9.tar.gz
├── haproxy.cfg
├── install.sh
├── rsyslog.conf
├── start.sh
└── sysctl.conf
编写dockerfile
[root@localhost docker]# vim haproxy/Dockerfile
FROM centos
LABEL MAINTAINER='neawalke [email protected]'
ENV version 2.4.9
ENV web1_ip ""
ADD files/haproxy-${version}.tar.gz /usr/src/
ADD files/haproxy.cfg /etc/haproxy/
ADD files/entrypoint.sh /
ADD files/sysctl.conf /etc/
ADD files/install.sh /tmp/
RUN ["/bin/bash","-c","/tmp/install.sh"]
EXPOSE 80 8189
CMD ["/entrypoint.sh"]
提供执行安装脚本
[root@localhost docker]# vim haproxy/files/install.sh
#!/bin/bash
rm -rf /etc/yum.repos.d/* && \
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-$(awk -F '"' 'NR==5{print $2}' /etc/os-release ).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 list all && \
yum -y install make gcc pcre-devel bzip2-devel openssl-devel systemd-devel && \
useradd -r -M -s /sbin/nologin haproxy && \
cd /usr/src/haproxy-${version} && make clean && \
make -j $(nproc) TARGET=linux-glibc USE_OPENSSL=1 USE_PCRE=1 USE_SYSTEMD=1 && \
make install PREFIX=/usr/local/haproxy && \
yum -y remove make gcc gcc-c++ && \
rm -rf /usr/src/{
haproxy-${version}.tar.gz, haproxy-${version}}
[root@localhost docker]# chmod +x haproxy/files/install.sh
#启动容器脚本
[root@localhost docker]# vim haproxy/files/start.sh
#!/bin/bash
IFS=$'\n'
OLD