Dockerfile多鏡像構(gòu)建方式
背景
實(shí)際項(xiàng)目經(jīng)常需要構(gòu)建多個(gè)服務(wù)器鏡像,絕大數(shù)情況,除了 Dockerfile 文件中除了 進(jìn)程名不一樣,其他基本是一樣的。
顯然寫多個(gè)重復(fù)的 Dockerfile 不符合程序員思維。
翻了下官方文檔,確實(shí)官方也已經(jīng)給出了解決方案。
官方文檔
官方文檔: https://docs.docker.com/engine/reference/commandline/build/#specifying-target-build-stage---target
通常是打不開這個(gè)網(wǎng)頁的,順手也摘錄下吧:
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 會(huì)是這樣子的:
FROM centos:7 AS xxx_base xxxx xxxx xxxx FROM xxx_base AS LoginServer xxxx FROM xxx_base AS Gateway xxxx
構(gòu)建命令類似為:
docker build -t LoginServer --target LoginServer . docker build -t Gateway --target Gateway .
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- dockerfile構(gòu)建任意java鏡像的實(shí)現(xiàn)示例
- Docker部署java項(xiàng)目,關(guān)于Dockerfile文件構(gòu)建鏡像方式
- 使用Dockerfile構(gòu)建自定義鏡像的操作步驟
- docker利用dockerfile構(gòu)建鏡像
- docker使用Dockerfile構(gòu)建鏡像的實(shí)現(xiàn)示例
- Dockerfile構(gòu)建Redis鏡像的方法實(shí)現(xiàn)(yum方式)
- 編寫Dockerfile和構(gòu)建自定義鏡像的步驟與技巧
- Dockerfile及新型容器鏡像構(gòu)建技術(shù)詳解
- Dockerfile 一鍵構(gòu)建 Hadoop 鏡像的實(shí)現(xiàn)
相關(guān)文章
Docker部署Zookeeper官方鏡像的保姆級(jí)教程
這篇文章介紹了如何使用Docker和Docker Compose部署Zookeeper官方鏡像,包括安裝Docker及可視化工具、創(chuàng)建掛載目錄、運(yùn)行Zookeeper容器、查看運(yùn)行狀態(tài)以及驗(yàn)證是否正常運(yùn)行,需要的朋友可以參考下2025-02-02
docker安裝sentinel的實(shí)現(xiàn)示例
本文主要介紹了docker安裝sentinel的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-12-12
dockerfile中CMD和ENTRYPOINT指令使用及說明
介紹了Dockerfile中的CMD和ENTRYPOINT指令以及它們的執(zhí)行方式,包括exec形式和shell形式,CMD提供默認(rèn)命令,支持覆蓋;ENTRYPOINT定義固定命令,不支持覆蓋,但可以通過--entrypoint參數(shù)實(shí)現(xiàn)覆蓋2025-11-11
Docker中處理持久化存儲(chǔ)(如數(shù)據(jù)庫(kù))的方法詳解
在使用Docker容器時(shí),容器的生命周期通常是短暫的,當(dāng)容器被刪除后,其內(nèi)部的數(shù)據(jù)也會(huì)隨之丟失,然而,對(duì)于像數(shù)據(jù)庫(kù)這樣需要持久化存儲(chǔ)數(shù)據(jù)的應(yīng)用來說,這是不可接受的,所以本文給大家介紹了Docker中處理持久化存儲(chǔ)(如數(shù)據(jù)庫(kù))的方法,需要的朋友可以參考下2025-06-06
Ubuntu安裝Docker超詳細(xì)小白教程(附國(guó)內(nèi)鏡像加速教程)
由于業(yè)務(wù)需要,又親自上手在服務(wù)器上安裝了Docker,所以這里再給大家總結(jié)下,這篇文章主要介紹了Ubuntu安裝Docker的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2026-04-04
Docker?數(shù)據(jù)目錄遷移的實(shí)現(xiàn)步驟
本文詳細(xì)記錄了將Docker數(shù)據(jù)目錄從/var/lib/docker遷移到更大容量的分區(qū)的全過程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-12-12

