首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用docker编译Arduino程序?

如何使用docker编译Arduino程序?
EN

Stack Overflow用户
提问于 2019-04-07 15:24:45
回答 1查看 2.2K关注 0票数 0

我想用docker编译arduino程序。

这是我的Dockerfile:

代码语言:javascript
复制
FROM zoobab/arduino-cli

然后,我构建了码头映像并按如下方式运行:

代码语言:javascript
复制
$docker build -t test .

$docker run -v C:/test/MyFirstSketch:/root/MyFirstSketch -it test

(Dockerfile在/test/,我的Arduino Sketch - MyFirstSketch.ino在/MyFirstSketch/)。

当容器运行时,在命令提示符下,我为arduino-cli输入以下命令,它们可以工作,我在/MyFirstSketch中的代码将按预期编译。

代码语言:javascript
复制
$arduino-cli core update-index

$arduino-cli core install arduino:avr

$arduino-cli compile --fqbn arduino:avr:uno MyFirstSketch

现在,为了改进这一点,我希望将上面的代码放在一个名为mycommands.bash的bash文件中,并能够在docker中运行它。

我的Dockerfile和docker运行命令应该是什么?对于我尝试过的Dockerfile:

代码语言:javascript
复制
FROM zoobab/arduino-cli

FROM ubuntu:xenial

ADD mycommands.bash ./

mycommands.bash包含上面列出的命令。

这是输出:

代码语言:javascript
复制
./mycommands.bash: line 2: arduino-cli: command not found

./mycommands.bash: line 3: arduino-cli: command not found

./mycommands.bash: line 4: arduino-cli: command not found

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2019-11-05 10:53:52

很抱歉这么说,但问题是你的Dockerfile。

你不能把这样的两个图像组合在一起。您使用的最后一个映像(最后一个)是运行脚本的图像。

您将Dockerfile (意外地)实现为多级构建:https://docs.docker.com/v17.09/engine/userguide/eng-image/multistage-build/#use-multi-stage-builds

这个应该能工作:

代码语言:javascript
复制
FROM zoobab/arduino-cli

COPY mycommands.bash .
CMD ["./mycommands.bash"]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55560582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档