Imagem de ferramentas para elaborar/validar questões de C/C++ e ESP32
207
Imagem de ferramentas para elaborar/validar questões de C/C++ e ESP32:
PlatformIO Core (pio), Wokwi CLI (wokwi-cli), Python + Pygments e o
toolkit jobe-arduino (scripts, mocks, harness) já embutidos em /opt/jobe-arduino
(no PATH; JOBE_ARDUINO_HOME aponta para lá). O toolchain ESP32/Arduino vem
pré-instalado (o build faz um pio run de aquecimento).
Imagem: ruseler/esp32-pio-wokwi
docker loginNo repositório do toolkit (onde estão Dockerfile.pio-wokwi e os scripts/mocks):
# build (amd64) — a tag ja fica pronta para o push
docker build --platform linux/amd64 -f Dockerfile.pio-wokwi -t ruseler/esp32-pio-wokwi:latest .
# (opcional) uma tag de versao, alem de latest
docker tag ruseler/esp32-pio-wokwi:latest ruseler/esp32-pio-wokwi:1.0
# publica
docker push ruseler/esp32-pio-wokwi:latest
docker push ruseler/esp32-pio-wokwi:1.0
Arquitetura: o Wokwi CLI embutido é o binário linux x64 estático, então publique para
linux/amd64. Em Apple Silicon, use--platform linux/amd64(roda via emulação). Uma variante arm64 exigiria trocar o binário do Wokwi CLI no Dockerfile.
docker run --rm ruseler/esp32-pio-wokwi:latest bash -lc \
"pio --version && wokwi-cli --help >/dev/null && echo OK && ls \$JOBE_ARDUINO_HOME"
Num repositório só de questões, o docker-compose.yml referencia a imagem publicada
(sem build) e sobe o Jobe junto:
docker compose pull # baixa ruseler/esp32-pio-wokwi:latest e o jobe
docker compose up -d
docker compose exec esp32-pio-wokwi bash
# dentro: new_question.py / gen_tests.py / jobe_test.py / gen_moodle_xml.py / pio / wokwi-cli
.env para o WOKWI_CLI_TOKENO token do Wokwi (para wokwi-cli em modo CI) não vai na imagem — fica num
.env ao lado do docker-compose.yml. O Compose lê o .env automaticamente.
cp .env.example .envWOKWI_CLI_TOKEN=wok_xxx... (crie em https://wokwi.com/dashboard/ci)docker compose up -dNo compose, o serviço recebe o token assim:
environment:
- WOKWI_CLI_TOKEN=${WOKWI_CLI_TOKEN:-}
.env está no .gitignore — não versione o token. O Jobe e o PlatformIO
não precisam do token; ele só é usado ao simular no Wokwi CI.
Ao mudar scripts/mocks/Dockerfile, refaça o build e o push (:latest e, se quiser,
uma nova tag de versão). Quem consome atualiza com docker compose pull.
Content type
Image
Digest
sha256:47f558fd4…
Size
883.7 MB
Last updated
11 days ago
docker pull ruseler/esp32-pio-wokwi