docker构建dnsmasq和web-ui完整流程

docker构建dnsmasq和web-ui完整流程

由于后期需要基于kubernetes构建CI/CD流程,涉及的组件比较多,同时需要为各个组件配置域名,真实模拟生产环境,需要搭建一个DNS Server,统一管理域名解析,查询资料一段时间后,决定使用dnsmasq搭建内部的DNS Server,接下来将详细记录完整的思考及构建过程。

1. 构建 dnsmasq web-ui

1.1 基于Centos7镜像构建基础镜像

FROM centos:centos7 as builder

ENV GOROOT=/usr/local/go
ENV GOBIN=/usr/local/go/bin
ENV GOPATH=/usr/local/go/gopath
ENV GOPROXY=https://goproxy.cn,https://goproxy.io,direct
ENV PATH=$PATH:$GOBIN:$GOPATH/bin

WORKDIR /opt

RUN  yum -y update && yum -y install wget git \
&& wget --progress=bar:force https://studygolang.com/dl/golang/go1.17.linux-amd64.tar.gz \
&& tar -zxvf go1.17.linux-amd64.tar.gz -C /usr/local \
&& rm -f go1.17.linux-amd64.tar.gz \
&& git clone https://github.com/jpillora/webproc.git \
&& cd webproc \
&& go build -o webproc -v . 

FROM centos:centos7

MAINTAINER zhang513044@126.com

ENV DNSMASQ_CONF=/etc/dnsmasq.conf

COPY docker-entrypoint.sh /docker-entrypoint.sh

COPY --from=builder  /opt/webproc/webproc /usr/bin/webproc

RUN yum -y install dnsmasq \
&& cp /etc/dnsmasq.conf /etc/dnsmasq.conf.default

EXPOSE 8080
EXPOSE 53

ENTRYPOINT ["/docker-entrypoint.sh"]

1.2 构建镜像

docker build -t dnsmasq-ui:1.0.0 .

1.3 启动镜像

docker run --name dnsmasqd -d -p 8080:8080 -p 53:53 dnsmasq-ui:1.0.0

注:

  1. 8080是web端口
  2. 53是dns端口

启动效果如下:


0fd8abd54fe84abab2fc4c960c6abcac.png

参考文档

  1. https://github.com/jpillora/webproc
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容