隨著IoT新的硬件平臺(tái)和開(kāi)發(fā)板的不斷更新,SDK交付越來(lái)越多地轉(zhuǎn)向零碎化以及“按需組裝”解決方案。大多數(shù)的硬件公司很難提供能夠正常運(yùn)行的Software Development Kits (SDK)。
Docker為硬件平臺(tái)提供了實(shí)現(xiàn)簡(jiǎn)單部署打包SDK環(huán)境的機(jī)會(huì),這是一個(gè)巨大的飛躍。這是第一個(gè)輕便的模式,跨操作系統(tǒng)、具有一致的工具和便于與他人分享的機(jī)制。
想了解更多關(guān)于物聯(lián)網(wǎng)和Docker的深度分享請(qǐng)點(diǎn)擊這里 Rapidly develop Internet of Things apps with Docker Containers
這將如何運(yùn)行呢?
為了說(shuō)明Docker是如何簡(jiǎn)化這些環(huán)境的交付,讓我們來(lái)看下我們?yōu)閑sp8266項(xiàng)目開(kāi)發(fā)的Docker容器。這個(gè)容器在docker hub esp8266-dev.共享。關(guān)于如何構(gòu)建這個(gè)SDK的環(huán)境可以查看ansible-esp8266-role ,它用于引導(dǎo)程序。
開(kāi)始之前,你需要在你的系統(tǒng)上安裝Docker,在我的例子中我使用運(yùn)行在OSX和Windows上的boot2docker 。
理解boot2docker的第一件事是,你/用戶(hù)在OSX上的文件夾在boot2docker虛擬機(jī)被設(shè)置為共享。這將使得重要的數(shù)據(jù)能夠非常容易的從OSX輸入到你的Docker容器中。你也可以參考boot2docker 項(xiàng)目中的VirtualBox Guest Additions,了解它是如何工作的。
在我的例子中,我使用一個(gè)基于esp8266/source-code-examples的項(xiàng)目作為基本示例。
添加一個(gè)Dockerfile到這個(gè)項(xiàng)目,請(qǐng)注意,我更新了WORKDIR來(lái)匹配我的ESP項(xiàng)目path。
FROM wolfeidau/esp8266-dev:1.1.0# add all the SDK stuff to the PATHENV PATH=$PATH:/opt/Espressif/crosstool-NG/builds/xtensa-lx106-elf/bin# Path which contains your esp8266 project source codeWORKDIR /Users/markw/Code/Systems/esp8266-led-lamp# pass -v /Users:/Users to ensure your shared folder is available within # the container for builds.VOLUME /UsersUSER ubuntu
然后你built你的容器并運(yùn)行:
docker build -t esp8266-build .
然后你想運(yùn)行如下代碼:
docker run -v /Users:/Users -i -t esp8266-build make
現(xiàn)在檢查你的firmware 目錄,應(yīng)該有文件需要flash你的esp2866項(xiàng)目。如果你想在容器內(nèi)運(yùn)行:docker run -v /Users:/Users -i -t esp8266-build bash
這個(gè)項(xiàng)目是我在 esp8266-led-lamp時(shí)做的。
總之我們已經(jīng)安裝了boot2docker并且至少構(gòu)建了一個(gè)esp8266項(xiàng)目,并且擺弄了復(fù)雜的SDK安裝。在我看來(lái)這在縮短構(gòu)建硬件項(xiàng)目的時(shí)間、簡(jiǎn)化復(fù)雜SDK環(huán)境的交付方面是一個(gè)巨大的進(jìn)步。
希望愛(ài)特梅爾公司和德州儀器將來(lái)也使用Docker。