Summary
Slims the Docker runtime image by keeping release artifacts, frontend debug/duplicate assets, local bot environment files, and bot dependency source maps out of the image; publishing Docker inputs per target architecture; tightening the runtime copy/install path for the Discord bot; and reducing duplicated Docker runtime setup between the source-build and CI runtime Dockerfiles.
Closes #633.
Changes
Added
- RID-specific Docker publish output folders for
amd64andarm64runtime image inputs. - A frontend
build:analyzescript for explicit bundle analysis builds. - Docker publish validation checks for release artifact folders, frontend debug files, oversized placeholder assets, and accidental bot
node_modulescopies. - Shared Docker runtime helper scripts for Listenarr user creation, frontend/config finalization, Discord bot runtime dependency installation, and entrypoint preparation.
Changed
- Docker runtime image now copies only
listenarr.api/docker-publish/${TARGETARCH}instead of broad publish output. - Docker runtime image copies only
tools/discord-bot, installs production bot dependencies, removes bot dependency source maps, and removes npm/corepack/cache/doc residue afterward. - The root source-build Dockerfile now reuses the same runtime helper path for user setup, bot dependency installation, frontend permissions, config folder creation, and entrypoint normalization.
- The root source-build Dockerfile now sets
DOCKER_ENV=trueand installs Discord bot production dependencies before removing npm from the final filesystem, matching the CI runtime image behavior. - Docker runtime Node install now carries the current
canarylibcap2security update while still removing npm from the final filesystem. - Frontend sourcemaps and visualizer output are opt-in instead of emitted during normal production builds.
- Placeholder SVG assets are replaced with small vector placeholders.
- API URL binding now respects explicit `--url...
Automated Canary build