Skip to the content.

Dockerfile说明

目的

部署在K8S上每个业务最终都要编译成Docker, 才能发布到K8S+TARS上.

每个业务制作成docker, 都有确定的规范, 必须遵循这个规范构建docker, 因为:

注意Dockerfile通常不需要你自己实现, 统一制作了一个docker容器, 里面存在了各种语言制作的Dockerfile, 从容器中copy出来即可

格式示例

Dockerfile格式大致介绍下, 以cpp语言的为例

cpp格式如下, 其他格式, 更换ServerType即可, 具体可以参考Dockerfile目录:

ARG BaseImage
ARG ServerType
ARG BIN

FROM ${BaseImage}

ENV ServerType=${ServerType}

RUN mkdir -p /usr/local/server/bin/
COPY $BIN /usr/local/server/bin/

说明:

正常情况docker的制作, 是在自动构建脚本中构建, 并推送到harbor仓库中的同时发布, 当然你也可以手工制作docker, 比如:

docker build . -t xxx/notifyproxyserver --build-arg BIN=build/bin/NotifyProxyServer --build-arg BaseImage=tarscloud/tars.cppbase --build-arg ServerType=cpp
docker push xxx/notifyproxyserver

这个语句其实被exec-build.sh中执行, 在CI/CD中自动构建业务服务的镜像, 后续会介绍.