Files
Cyril Rohr d482f1f708 Fix docker bloat (#21948)
* Refactor Docker build/runtime stages for slimmer images

Split runtime and build dependencies into separate stages and build the app in a dedicated stage before runtime copy.

Add a slim prune stage that removes non-runtime source trees, source maps, duplicate enterprise source videos, module test/doc folders, and extra vendored gem artifacts.

This ensures bytes are removed before the final slim copy, so layer size actually decreases while keeping runtime behavior intact.

* Add target-specific Docker image validation in CI

Introduce script/ci/docker_validate_image.sh with validations for slim, slim-bim, and all-in-one images.

Checks include runtime binary presence/absence, plugin asset/module integrity, slim pruning expectations, BIM tooling, and all-in-one API startup/embedded services.

Update docker workflow to run the validator for every matrix target before push.

* fix

* Generate YAML-safe auto Hocuspocus secret

All-in-one startup auto-generates OPENPROJECT_COLLABORATIVE__EDITING__HOCUSPOCUS__SECRET in the entrypoint.

Environment overrides are parsed through YAML, so leading punctuation in the previous charset (e.g. %) could trigger Psych parsing errors and abort boot.

Restrict generated secret characters to alphanumeric to keep parsing stable while preserving high entropy.

* Fix all-in-one hocuspocus runtime and validation

* Fix all-in-one memcached startup handover
2026-02-11 10:40:54 +01:00

48 lines
720 B
Plaintext

.github/
.git
.dockerignore
.gitignore
.bundle
.env*
.buildpacks
.*.yml
*.swp
.*ignore
*.md
*.log
config/database.yml
docker/prod/Dockerfile
docker/ci/Dockerfile
Guardfile
docker-compose.*
browserslist
/docs
!/docs/api/apiv3/openapi-spec.yml
!/docs/api/apiv3/paths
!/docs/api/apiv3/tags
!/docs/api/apiv3/components
# Ignore spec/** folders
spec/**
# Allow factories in case we use lookbook
!spec/factories
!spec/factories/**
!spec/support
!spec/support/**
extra
features
help
log/*.log
/tmp
frontend/.angular/cache
frontend/node_modules
node_modules
# travis
vendor/bundle
# Local checkout; all-in-one copies hocuspocus from its dedicated image.
vendor/hocuspocus
/public/assets
/config/frontend_assets.manifest.json