我想使用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:未找到命令
谢谢!
答案 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"]