Conversation
Add Dockerfile, build entrypoint, convenience script, and documentation for building the APK without installing Android tooling on the host.
|
@BGLuis Could you please review it. I believe it's nice to have |
- Roda como não-root com o UID/GID do host (--user), --cap-drop ALL e no-new-privileges; remove o chown (que só rodava em caso de sucesso) e os arquivos de root deixados no projeto após falha de build. - Remove o symlink ffmpeg-android-maker dentro do projeto e o rm -rf do entrypoint; scripts/build.sh passa a aceitar FFMPEG_MAKER_DIR. - Entrypoint só valida o ambiente (git worktree, Meta SDK, FFmpeg) e delega para scripts/build.sh; o cp dos .so não esconde mais falhas. - Dockerfile multi-stage (sdk, ffmpeg, rust, final) com base por digest e Rust, cargo-ndk, rustup-init e commandlinetools fixados (SHA-256); imagem de ~6,4 GB. Adiciona .dockerignore e cache mounts do apt. - Move docker-build.sh para scripts/, repassa APP_VERSION_*, suporta DOCKER=podman e adiciona `make docker-build`. - Atualiza o README do Docker e o CLAUDE.md. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Hi @vladislav-smirnov, thank you very much for the contribution! A containerized build is a really nice addition, and it lowers the barrier for new contributors, since nothing has to be installed on the host. I reviewed it, built the image and generated the APK inside the container to check it end to end. It worked, so I made a few changes on top of your code, all pushed to your branch (commit 98b91b3). Here's what I changed and why: Security / robustness
Dockerfile
Scripts / docs
What I tested: the full flow through A small suggestion for the PR description, when you have a moment: since this PR only touches the build tooling and not the app code, it might be worth updating the checklist to reflect what you ran (for example, the container build), so reviewers know exactly what was verified. Totally optional! Thanks again! Feel free to look at the changes and tell me if anything looks off. |
Description
Added docker to build apk to make host OS clean
Type of change
Affected layers
app/) — app shell, UI panels, credentials, history, i18nnative/) — OpenXR session, Vulkan/GLES render loop, controller inputrust/) — demux, decode, audio, network protocolsHow has this been tested?
cargo test)Checklist:
clippy -D warnings).If applicable
SCREEN_MODEinrust/bridge/src/lib.rs,enum class ScreenModeinnative/include/screen_mode.h, and the catalog inScreenFormatCatalog.kt.values/strings.xmlandvalues-pt-rBR/strings.xml, keeping the key order mirrored and using positional placeholders (%1$s).media-logic(host-testable) rather than incore, where it could not be tested.Screenshots / Videos (if applicable)