2015-11-28 49 views
6

這可能會更通用,並且會爲機器體系結構A構建體系結構B的映像。我當前想要創建一個具有很多Python依賴關係的映像。在樹莓派上花費時間,但在Mac上速度更快。當我最終得到一個錯誤需要重建。有沒有辦法在Mac上構建這個圖像,然後把它拉到我的覆盆子pi?Docker - 在Mac上構建rpi圖像

回答

8

模擬完整的備用架構通常非常緩慢。 QEMU可以讓你在Linux上做到這一點,並且可以集成到Docker容器中。

對於建築物,您可以使用比完整模擬快得多的QEMU User Emulation。這允許您的硬件直接執行ARM二進制文件,並用於簡化交叉編譯和交叉調試。

第一個get VirtualBoxget Vagrant並安裝。 (或者使用docker-machineDocker Toolbox

設置你的虛擬機

mkdir raspbian-docker 
cd raspbian-docker 
vagrant init debian/jessie64 
vagrant up 
vagrant ssh 

現在你對你的Debian Linux的虛擬機,設置泊塢窗主機

sudo su - 
apt-get install qemu-user-static 
curl https://get.docker.com/ | sh 

運行一個raspbian環境

docker run -ti \ 
    --volume /usr/bin/qemu-arm-static:/usr/bin/qemu-arm-static \ 
    philipz/rpi-raspbian \ 
    bash 

並做你需要的。

然後你可以docker exportdocker import來移動圖像。您還可以使用the hubsetup a registry使用push/pull

Docker Toolbox也將讓你輕鬆通過VirtualBox的虛擬機在Mac上運行的碼頭工人,但我碰到更多的麻煩比它是值得(當你有遊民設置)。

+0

簡單而好的解決方案,它的工作原理...我喜歡它,謝謝。 – Clempat

+0

我也發現https://www.scaleway.com/。我無法註冊。沒有邀請,但看起來很有趣用於此目的... – Clempat

0

您可以派生RPI的發行建設者和自定義您的需求:https://github.com/RPi-Distro/pi-gen 它使用的碼頭工人的qemu-debootstrap的,類似於馬特的答案。

如果您計劃爲arm架構構建Docker鏡像,則qemu-debootstrap將無濟於事。在這種情況下,您可以直接在ARM服務器上運行Docker構建,例如Scaleway提供的構建。

我的CI服務器運行上述組合,以連續構建帶預先加載的armh docker鏡像的操作系統映像。然後,device-init負責將碼頭導出程序加載爲碼頭圖像。 缺點是在第一次啓動後,device-init可能需要幾小時才能預加載docker鏡像。

相關問題