docker構(gòu)建dnsmasq和web-ui完整流程
由于后期需要基于kubernetes構(gòu)建CI/CD流程,涉及的組件比較多咒林,同時(shí)需要為各個(gè)組件配置域名肆资,真實(shí)模擬生產(chǎn)環(huán)境透敌,需要搭建一個(gè)DNS Server描扯,統(tǒng)一管理域名解析定页,查詢資料一段時(shí)間后,決定使用dnsmasq搭建內(nèi)部的DNS Server绽诚,接下來將詳細(xì)記錄完整的思考及構(gòu)建過程。
1. 構(gòu)建 dnsmasq web-ui
1.1 基于Centos7鏡像構(gòu)建基礎(chǔ)鏡像
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 構(gòu)建鏡像
docker build -t dnsmasq-ui:1.0.0 .
1.3 啟動(dòng)鏡像
docker run --name dnsmasqd -d -p 8080:8080 -p 53:53 dnsmasq-ui:1.0.0
注:
- 8080是web端口
- 53是dns端口
啟動(dòng)效果如下: