mirror of
https://github.com/opf/openproject.git
synced 2026-06-14 03:30:14 +00:00
d482f1f708
* 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
18 lines
687 B
Bash
18 lines
687 B
Bash
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
bundle config set --local path 'vendor/bundle'
|
|
bundle config set --local without 'test development'
|
|
bundle install --jobs=8 --retry=3
|
|
bundle config set deployment 'true'
|
|
cp Gemfile.lock Gemfile.lock.bak
|
|
rm -rf vendor/bundle/ruby/*/cache
|
|
rm -rf vendor/bundle/ruby/*/gems/*/spec
|
|
rm -rf vendor/bundle/ruby/*/gems/*/test
|
|
rm -rf vendor/bundle/ruby/*/gems/*/tests
|
|
rm -rf vendor/bundle/ruby/*/gems/*/{doc,docs,example,examples,benchmark,benchmarks}
|
|
rm -rf vendor/bundle/ruby/*/bundler/gems/*/.git
|
|
rm -rf vendor/bundle/ruby/*/bundler/gems/*/{spec,test,tests,doc,docs,example,examples,benchmark,benchmarks}
|
|
find vendor/bundle -type f \( -name '*.a' -o -name '*.o' \) -delete
|