[🐛 Bug ]: Could not start docker image
Operating System
QNAP NAS with QTS 5.2.0.2860
Docker Image
budtmo/docker-android:emulator_11.0
Expected behaviour
the docker should start automatically
Actual behaviour
Failed to start container "docker-android". Error message: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/home/androidusr/docker-android/mixins/scripts/run.sh": stat /home/androidusr/docker-android/mixins/scripts/run.sh: no such file or directory: unknown
Logs
Created the docker with compose file below, the application created but failed to start version: '3.8' services: android-emulator: image: budtmo/docker-android:emulator_11.0 container_name: docker-android ports: - "6080:6080" environment: - EMULATOR_DEVICE=Samsung\ Galaxy\ S10 - WEB_VNC=true - EMULATOR_ADDITIONAL_ARGS=-cores\ 6\ -memory\ 5120 - EMULATOR_DATA_PARTITION=9000m volumes: - /share/CACHEDEV1_DATA/Container/android-emu:/home/androidusr devices: - /dev/kvm restart: always
same
Since you've bind-mounted /share/CACHEDEV1_DATA/Container/android-emu to /home/androidusr, any files in the host directory will be reflected in /home/androidusr. This means that anything located at that path inside the Docker image will not be accessible.
So, the error message indicates that ./docker-android/mixins/scripts/run.sh is not available in /share/CACHEDEV1_DATA/Container/android-emu, which is your host directory.
The readme says to mount to this path in order to persist data: https://github.com/budtmo/docker-android?tab=readme-ov-file#persisting-data
Is this incorrect?
At the moment the work around appears to be to clone the repo to a /docker-android in the local directory mounted to /home/androidusr so the files are available, but surely this is not intended...
I have short memory apparently because i don't even quite remember using this myself but regardless the readme seems to assume that you've git cloned the repo and built it yourself with /home/androidusr bind mounted beforehand.
A simpler solution would be to just create a fresh container without the dir bind mounted, do docker compose cp my-service:/home/androidusr ./my-androidusr-on-host, recreate the container with that dir bind mounted.
Edit: Although when pulling newer images this probably becomes a bit of a hassle, so with that in mind its probably easier to just git clone and git pull && docker compose build occasionally.