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 .
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
docker-swarm之使用Docker secret管理敏感數據
就Docker Swarm集群服務而言,secret 是塊狀數據,例如密碼、SSH私鑰、SSL證書或其他不應通過網絡傳輸或未加密存儲在Dockerfile或應用程序源代碼中的數據,我們可以使用Docker secret 集中管理這些數據,所以接下來就帶大家了解一下如何使用Docker secret 管理敏感數據2023-08-08Docker 容器互聯(lián)互通的實現(xiàn)方法
這篇文章主要介紹了Docker 容器互聯(lián)互通,本文講解不同網絡下的容器可以通過加入同一個docker網絡,來訪問該docker網絡下的容器,并且既可以通過容器ip也可以通過容器名連接,非常方便,需要的朋友可以參考下2022-10-10docker安裝RabbitMq添加用戶實現(xiàn)方式
這篇文章主要介紹了docker安裝RabbitMq添加用戶實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07Docker學習筆記之Weave實現(xiàn)跨主機容器互聯(lián)
這篇文章主要介紹了Docker學習筆記之Weave實現(xiàn)跨主機容器互聯(lián),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04