您如何使用Docker编译Arduino程序?

时间:2019-04-07 15:24:45

标签: docker arduino dockerfile arduino-uno arduino-ide

我想使用docker编译arduino程序。

这是我的Dockerfile:

FROM zoobab / arduino-cli

然后我构建docker映像并像这样运行它:

docker build -t test。

docker run -v C:/ test / MyFirstSketch:/ root / MyFirstSketch -it测试

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

当容器运行时,从命令提示符处输入以下arduino-cli命令,它们将起作用,并且/ MyFirstSketch中的代码将按预期进行编译。

arduino-cli核心更新索引

arduino-cli核心安装arduino:avr

arduino-cli编译--fqbn arduino:avr:uno MyFirstSketch

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

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

FROM zoobab / arduino-cli

从ubuntu:xenial

添加mycommands.bash ./

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

这是输出: ./mycommands.bash:第2行:arduino-cli:找不到命令

./ mycommands.bash:第3行:arduino-cli:未找到命令

./ mycommands.bash:第4行:arduino-cli:未找到命令

谢谢!

1 个答案:

答案 0 :(得分:0)

对不起,但这是您的Dockerfile。

您不能像这样组合两个图像。您使用的最后一个图像(last FROM)是脚本运行的图像。

您(以偶然的方式)将Dockerfile实现为MultiStage-Build: https://docs.docker.com/v17.09/engine/userguide/eng-image/multistage-build/#use-multi-stage-builds

这应该有效:

FROM zoobab/arduino-cli

COPY mycommands.bash .
CMD ["./mycommands.bash"]