下载confd

#wget https://github.com/kelseyhightower/confd/releases/download/v0.15.0/confd-0.15.0-linux-amd64
#mv confd-0.15.0-linux-amd64 /usr/bin/confd
#chmod +x /usr/bin/confd

创建confd目录

conf.d 目录中是应用的配置文件定义
templates 目录中是应用的模版文件
confd.toml 是confd本身的配置文件
mkdir -p /etc/confd/{conf.d,templates}

root@747f14c47586:/etc/confd/conf.d# cat nginx.toml 
[template]
src = "nginx.conf.tmpl"
dest = "/etc/nginx/conf.d/default.conf"
keys = [ "/netm/url" ]
check_cmd = "/etc/init.d/nginx configtest"
reload_cmd = "/etc/init.d/nginx reload"

root@747f14c47586:/etc/confd/templates# cat nginx.conf.tmpl 
server {
        listen 80;
        location /netm/index.jsp {
                rewrite ^(.*)$ {{ getv "/netm/url" }} redirect;
                expires 1s;
        }
}

dockfile

FROM centos
MAINTAINER cxiong

# yum
#RUN yum -y update
#RUN yum -y install epel-release
#RUN yum clean all
#RUN yum makecache

#RUN yum -y install iproute

# confd
RUN yum -y install wget

RUN wget https://github.com/kelseyhightower/confd/releases/download/v0.15.0/confd-0.15.0-linux-amd64

RUN mv confd-0.15.0-linux-amd64 /usr/bin/confd
RUN chmod +x /usr/bin/confd
RUN mkdir -p /etc/confd/{conf.d,templates}
COPY nginx.toml /etc/confd/conf.d/
COPY nginx.conf.tmpl /etc/confd/templates/

# nginx 
RUN rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
RUN yum -y install nginx 
RUN sed -i '3a daemon off;' /etc/nginx/nginx.conf
EXPOSE 80

# etcd
#RUN wget https://github.com/coreos/etcd/releases/download/v3.3.9/etcd-v3.3.9-linux-amd64.tar.gz
#RUN tar xzvf etcd-v3.3.9-linux-amd64.tar.gz
#RUN mv etcd-v3.3.9-linux-amd64/etcd* /usr/bin/
#chmod +x /usr/bin/etcd*

RUN yum -y install epel-release
RUN yum -y install etcd
#EXPOSE 2379

# check_netm_url.sh
COPY check_netm_url.sh /
RUN chmod +x /check_netm_url.sh

# supervisor
#RUN yum -y install epel-release
RUN yum -y install supervisor

# cmd 
COPY nginx.ini /etc/supervisord.d/
COPY confd.ini /etc/supervisord.d/
COPY etcd.ini /etc/supervisord.d/
COPY check_netm_url.ini /etc/supervisord.d/

ENTRYPOINT /usr/bin/supervisord -n -c /etc/supervisord.conf
#CMD /usr/bin/supervisord