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 .
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
dockerfile中CMD和ENTRYPOINT指令使用及说明
介绍了Dockerfile中的CMD和ENTRYPOINT指令以及它们的执行方式,包括exec形式和shell形式,CMD提供默认命令,支持覆盖;ENTRYPOINT定义固定命令,不支持覆盖,但可以通过--entrypoint参数实现覆盖2025-11-11
Ubuntu安装Docker超详细小白教程(附国内镜像加速教程)
由于业务需要,又亲自上手在服务器上安装了Docker,所以这里再给大家总结下,这篇文章主要介绍了Ubuntu安装Docker的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下2026-04-04


最新评论