2016-03-01 83 views
0

碼頭中的圖像可以通過源代碼安裝。我的意思是我想用幾個組件和它們的依賴來構建我的環境。我想通過執行源代碼來構建組件。碼頭工人允許我這樣做嗎?在碼頭上構建圖像

+1

您是否需要一個容器(系統)來編譯或部署應用程序?你能否確定你的問題?請更清楚一點嗎? – Auzias

+0

爲什麼不建立圖像並將它們放入存儲庫(例如:docker hub)中,然後在docker-compose文件或配置整個碼頭堆棧的腳本中定義設置,您可以在源代碼中包含這些碼頭堆棧。 – Lysender

+0

其實Docker是我們正在嘗試的東西,而不是像VMware這樣的虛擬機。需求是相互構建組件,然後嘗試測試依賴關係。對於完成此項工作的初始工作,所有組件都是通過執行源代碼而不是安裝exe或dmg文件來構建的。所以,我只想知道是否有方法在Docker中以相同的方式構建組件。 –

回答

0

聽起來就像你想要一個動態碼頭構建過程。爲此,您需要docker 1.9,使用--build-args來傳遞參數變量。您可以從一個單一的docker文件中構建多個圖像,每次傳入不同的參數值。

明顯遭受討論的重現性問題。

0

是的,它允許你這樣做。您需要從基礎圖像開始。例如Ubuntu:

docker pull ubuntu 
docker run -t -i ubuntu /bin/bash 

之後,你將在你的容器中運行一個bash。然後,你可以獲取東西,運行代碼,更改配置,克隆倉庫和其他你想要的東西。之後,將您的容器轉換爲圖像,您需要commit the container

請注意,這不是構建基礎架構的Docker方法。正確的方法是通過使用其他基本映像和標準Docker指令來創建用於構建映像的配方。這將使您的基礎設施無國籍,建設速度更快,並且可以提供更高的可重複性。

+2

更好的方法是創建一個'Dockerfile'並構建一個圖像,而不是'提交'修改後的圖像。還要注意,我不確定它是否回答了_not-so-well-formulated_問題。 ('docker pull'也是可選的,因爲如果沒有在本地找到,'docker run'會自動拉它。 – Auzias

+1

你是完全正確的。這就是爲什麼我說它不是Docker的方式。這是一個非常骯髒的解決方案,使圖像很難維護,但這就是問題所在。 – nstoitsev

+0

-Auzias,我已經徹底解釋了這個問題,希望能幫助你更好地回答。 –

相關問題