docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > Dockerfile多镜像构建

Dockerfile多镜像构建方式

作者:fananchong2

这篇文章主要介绍了Dockerfile多镜像构建方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

背景

实际项目经常需要构建多个服务器镜像,绝大数情况,除了 Dockerfile 文件中除了 进程名不一样,其他基本是一样的。

显然写多个重复的 Dockerfile 不符合程序员思维。

翻了下官方文档,确实官方也已经给出了解决方案。

官方文档

官方文档: https://docs.docker.com/engine/reference/commandline/build/#specifying-target-build-stage---target

不翻墙,通常是打不开这个网页的,顺手也摘录下吧:

Specifying target build stage (–target)
When building a Dockerfile with multiple build stages, --target can be used to specify an intermediate build stage by name as a final stage for the resulting image. Commands after the target stage will be skipped.
FROM debian AS build-env

FROM alpine AS production-env

$ docker build -t mybuildimage --target build-env .

因此基本上你写的 Dockerfile 会是这样子的:

FROM centos:7 AS xxx_base
xxxx
xxxx
xxxx

FROM xxx_base AS LoginServer
xxxx

FROM xxx_base AS Gateway
xxxx

构建命令类似为:

docker build -t LoginServer --target LoginServer .
docker build -t Gateway --target Gateway .

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文