![](/img/trans.png)
[英]How do you compile a HTML Help Workshop project inside a Docker container?
[英]How do you compile Arduino programs using docker?
我想使用 docker 編譯 arduino 程序。
這是我的 Dockerfile:
FROM zoobab/arduino-cli
然后我構建docker鏡像並像這樣運行它:
$docker build -t test .
$docker run -v C:/test/MyFirstSketch:/root/MyFirstSketch -it test
(Dockerfile 在 /test/ 中,而我的 Arduino Sketch - MyFirstSketch.ino - 在 /MyFirstSketch/ 中)。
當容器運行時,在命令提示符下,我為 arduino-cli 輸入以下命令,它們工作並且我在 /MyFirstSketch 中的代碼按預期編譯。
$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 run 命令應該是什么? 對於我嘗試過的 Dockerfile:
FROM zoobab/arduino-cli
FROM ubuntu:xenial
ADD mycommands.bash ./
mycommands.bash 包含上面列出的命令。
這是輸出:
./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
謝謝!
很抱歉這么說,但問題在於您的 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"]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.