随着 IoT 新的硬件平台和开发板的不断更新, SDK 交付越来越多地转向零碎化以及“按需组装”解决方案。大多数的硬件公司很难提供能够正常运行的 Software Development Kits (SDKs )。
Docker 为硬件平台提供了实现简单部署打包 SDK 环境的机会,这是一个巨大的飞跃。这是第一个轻便的模式,跨操作系统、具有一致的工具和便于与他人分享的机制。
想了解更多关于物联网和 Docker 的深度分享请点击这里Rapidly develop Internet of Things apps with Docker Containers
这将如何运行呢?
为了说明 Docker 是如何简化这些环境的交付,让我们来看下我们为 esp8266 项目开发的 Docker 容器。这个容器在 docker hub esp8266-dev.共享。关于如何构建这个 SDK 的环境可以查看ansible-esp8266-role ,它用于引导程序。
开始之前,你需要在你的系统上安装 Docker ,在我的例子中我使用运行在 OSX 和 Windows 上的 boot2docker 。
理解 boot2docker 的第一件事是,你 /用户在 OSX 上的文件夹在 boot2docker 虚拟机被设置为共享。这将使得重要的数据能够非常容易的从 OSX 输入到你的 Docker 容器中。你也可以参考 boot2docker 项目中的 VirtualBox Guest Additions,了解它是如何工作的。
在我的例子中,我使用一个基于esp8266/source-code-examples 的项目作为基本示例。
添加一个 Dockerfile 到这个项目,请注意,我更新了 WORKDIR 来匹配我的 ESP 项目 path 。
FROM wolfeidau/esp8266-dev:1.1.0
# add all the SDK stuff to the PATH
ENV PATH=$PATH:/opt/Espressif/crosstool-NG/builds/xtensa-lx106-elf/bin
# Path which contains your esp8266 project source code
WORKDIR /Users/markw/Code/Systems/esp8266-led-lamp
# pass -v /Users:/Users to ensure your shared folder is available within
# the container for builds.
VOLUME /Users
USER ubuntu
然后你 built 你的容器并运行:
docker build -t esp8266-build .
然后你想运行如下代码:
docker run -v /Users:/Users -i -t esp8266-build make
现在检查你的 firmware 目录,应该有文件需要 flash 你的 esp2866 项目。
如果你想在容器内运行:
docker run -v /Users:/Users -i -t esp8266-build bash
这个项目是我在esp8266-led-lamp时做的。
总之我们已经安装了 boot2docker ,至少构建了一个 esp8266 项目,并且摆弄了复杂的 SDK 安装。在我看来这在缩短构建硬件项目的时间、简化复杂 SDK 环境的交付方面是一个巨大的进步。
希望爱特梅尔公司和德州仪器将来也使用 Docker 。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.