Skip to content

Fix beets container crash-loop on dash-based /bin/sh

jedmund requested to merge jedmund/beets-entrypoint-dash-fix into main

The beets sidecar container was crash-looping with:

/app/entrypoint.sh: 19: wait: Illegal option -n

Root cause: the entrypoint uses wait -n (a bashism) but the shebang is #!/bin/sh, which on the python:3.12-slim base image is dash. Dash does not support wait -n, so the script exits immediately with status 2 and Docker restarts the container in a tight loop.

Fix: change the shebang to #!/bin/bash. Bash is present in python:3.12-slim (inherited from debian:bookworm-slim).

Test plan

  • After merge, redeploy (ansible make deploy-album-sort or manual docker compose build beets && docker compose up -d beets)
  • docker compose ps shows album_sort_beets as Up (not Restarting)
  • docker logs album_sort_beets shows uvicorn + beets web starting cleanly on ports 8338 and 8337
  • /settings page in album-sort shows both Wrapper and Web plugin pills as reachable

Merge request reports

Loading