2026-05-13 06:20:38 UTC
814 MB
/var/openproject/assets
APP_PATH/app
APP_USERapp
BUNDLE_APP_CONFIG/app/.bundle
BUNDLE_JOBS8
BUNDLE_PATH/app/vendor/bundle
BUNDLE_RETRY3
BUNDLE_SILENCE_ROOT_WARNING1
BUNDLE_WITHOUTdevelopment:test
DATABASE_URLpostgres://openproject:openproject@127.0.0.1/openproject
DEBIAN_FRONTENDnoninteractive
DOCKER1
GEM_HOME/usr/local/bundle
LANGC.UTF-8
OPENPROJECT_ANGULAR_UGLIFYtrue
OPENPROJECT_ATTACHMENTS__STORAGE__PATH/var/openproject/assets/files
OPENPROJECT_COLLABORATIVE__EDITING__HOCUSPOCUS__SECRET OPENPROJECT_COLLABORATIVE__EDITING__HOCUSPOCUS__URLauto
OPENPROJECT_EDITIONstandard
OPENPROJECT_INSTALLATION__TYPEdocker
OPENPROJECT_RAILS__CACHE__STOREmemcache
PATH/usr/lib/postgresql/17/bin:/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PGBIN/usr/lib/postgresql/17/bin
PGDATA/var/openproject/pgdata
PGVERSION17
PGVERSION_CHOICES13 15 17
RAILS_ENVproduction
RAILS_LOG_TO_STDOUT1
RAILS_SERVE_STATIC_FILES1
RUBY_DOWNLOAD_SHA2560531fe57dfdb56bf591620d2450642ea0e0964f3512a6ebee7dc9305de69395f
RUBY_DOWNLOAD_URLhttps://cache.ruby-lang.org/pub/ruby/4.0/ruby-4.0.1.tar.xz
RUBY_VERSION4.0.1
SECRET_KEY_BASEOVERWRITE_ME
USE_JEMALLOCfalse
[#000] sha256:ec781dee3f4719c2ca0dd9e73cb1d4ed834ed1a406495eb6e44b6dfaad5d1f8f - 3.49% (28.4 MB)
[#001] sha256:5a81ea8aeccd3e60207befe75bfaa6fdb0a1df0fb35feb3310e57608376e2e72 - 0.15% (1.22 MB)
[#002] sha256:6e4675e185fdc87d98fb12d75a6fca5f520049c069ff1117c3e3795b914ce5e5 - 0.0% (189 Bytes)
[#003] sha256:6dd0668ae049d2298bba7c2c36bd7df9ab1152352beaec6d298c1e09e86e0b47 - 5.81% (47.3 MB)
[#004] sha256:c11c489829a86da9b8431c2aec91655285de45629a7afaeb588cccfbd1662838 - 0.0% (143 Bytes)
[#005] sha256:5d0565835338fdc0e79902b2d7b91bfe67f77b47f1cbbcdbbf0d753804975808 - 0.0% (3.31 KB)
[#006] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)
[#007] sha256:0b7989faa68c2754fb89b5b4a2c93bd6b01482e00fbdf85e35f9f7098bf27b0d - 0.11% (892 KB)
[#008] sha256:18979433409bde469c5254afe0241731043e0eaa7b0072ceab264518cae5473a - 0.0% (1.38 KB)
[#009] sha256:55e6ce6a1d0408447a7f619e26791c11d71ed3ac3e617131788ad6a07f2cf110 - 24.19% (197 MB)
[#010] sha256:a01604ba5e5fc7dfd47176f02184b8b8d699f4185f9147f7dd23be44ffdcd664 - 40.61% (331 MB)
[#011] sha256:b38a1cc94cb0443f1aa2def69fc0ce4c230fd6d1a4820a72537d7d56a72a7818 - 0.0% (1.36 KB)
[#012] sha256:1fcc78c165082f669cf350a86a7aa69d55a0e5495ef60d4f20ffe80b57e1ca87 - 0.09% (750 KB)
[#013] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)
[#014] sha256:69e61fa20dfe13673d19834f4c774ed52120ef9cf84f68611b456660c3baf517 - 6.5% (53 MB)
[#015] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)
[#016] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)
[#017] sha256:c9dc6e52a5ae57d57b05339d05746f1ca2601daf80faf7f5beeb8949ab071a96 - 19.05% (155 MB)
# debian.sh --arch 'amd64' out/ 'trixie' '@1773619200'
2026-03-16 23:07:37 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates ; apt-get dist-clean # buildkit
2026-03-16 23:07:37 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c set -eux; mkdir -p /usr/local/etc; echo 'gem: --no-document' >> /usr/local/etc/gemrc # buildkit
2026-03-16 23:09:49 UTC (buildkit.dockerfile.v0)ENV LANG=C.UTF-8
2026-03-16 23:09:49 UTC (buildkit.dockerfile.v0)ENV RUBY_VERSION=4.0.1
2026-03-16 23:09:49 UTC (buildkit.dockerfile.v0)ENV RUBY_DOWNLOAD_URL=https://cache.ruby-lang.org/pub/ruby/4.0/ruby-4.0.1.tar.xz
2026-03-16 23:09:49 UTC (buildkit.dockerfile.v0)ENV RUBY_DOWNLOAD_SHA256=0531fe57dfdb56bf591620d2450642ea0e0964f3512a6ebee7dc9305de69395f
2026-03-16 23:09:49 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends dpkg-dev libgdbm-dev ruby autoconf bzip2 g++ gcc libbz2-dev libffi-dev libgdbm-compat-dev libglib2.0-dev libgmp-dev libncurses-dev libssl-dev libxml2-dev libxslt-dev libyaml-dev make wget xz-utils zlib1g-dev ; rustArch=; dpkgArch="$(dpkg --print-architecture)"; case "$dpkgArch" in 'amd64') rustArch='x86_64-unknown-linux-gnu'; rustupUrl='https://static.rust-lang.org/rustup/archive/1.28.2/x86_64-unknown-linux-gnu/rustup-init'; rustupSha256='20a06e644b0d9bd2fbdbfd52d42540bdde820ea7df86e92e533c073da0cdd43c' ;; 'arm64') rustArch='aarch64-unknown-linux-gnu'; rustupUrl='https://static.rust-lang.org/rustup/archive/1.28.2/aarch64-unknown-linux-gnu/rustup-init'; rustupSha256='e3853c5a252fca15252d07cb23a1bdd9377a8c6f3efa01531109281ae47f841c' ;; esac; if [ -n "$rustArch" ]; then mkdir -p /tmp/rust; wget -O /tmp/rust/rustup-init "$rustupUrl"; echo "$rustupSha256 */tmp/rust/rustup-init" | sha256sum --check --strict; chmod +x /tmp/rust/rustup-init; export RUSTUP_HOME='/tmp/rust/rustup' CARGO_HOME='/tmp/rust/cargo'; export PATH="$CARGO_HOME/bin:$PATH"; /tmp/rust/rustup-init -y --no-modify-path --profile minimal --default-toolchain '1.91.1' --default-host "$rustArch"; rustc --version; cargo --version; fi; wget -O ruby.tar.xz "$RUBY_DOWNLOAD_URL"; echo "$RUBY_DOWNLOAD_SHA256 *ruby.tar.xz" | sha256sum --check --strict; mkdir -p /usr/src/ruby; tar -xJf ruby.tar.xz -C /usr/src/ruby --strip-components=1; rm ruby.tar.xz; cd /usr/src/ruby; autoconf; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; ./configure --build="$gnuArch" --disable-install-doc --enable-shared ${rustArch:+--enable-yjit} ${rustArch:+--enable-zjit} ; make -j "$(nproc)"; make install; rm -rf /tmp/rust; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark > /dev/null; find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' | sort -u | xargs -r dpkg-query --search | awk 'sub(":$", "", $1) { print $1 }' | sort -u | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; apt-get dist-clean; cd /; rm -r /usr/src/ruby; if dpkg -l | grep -i ruby; then exit 1; fi; [ "$(command -v ruby)" = '/usr/local/bin/ruby' ]; ruby --version; gem --version; bundle --version # buildkit
2026-03-16 23:09:49 UTC (buildkit.dockerfile.v0)ENV GEM_HOME=/usr/local/bundle
2026-03-16 23:09:49 UTC (buildkit.dockerfile.v0)ENV BUNDLE_SILENCE_ROOT_WARNING=1 BUNDLE_APP_CONFIG=/usr/local/bundle
2026-03-16 23:09:49 UTC (buildkit.dockerfile.v0)ENV PATH=/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2026-03-16 23:09:49 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c set -eux; mkdir "$GEM_HOME"; chmod 1777 "$GEM_HOME" # buildkit
2026-03-16 23:09:49 UTC (buildkit.dockerfile.v0)CMD ["irb"]
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)LABEL maintainer=operations@openproject.com
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ARG NODE_VERSION=22.21.0
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ARG BIM_SUPPORT=true
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV USE_JEMALLOC=false
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV DEBIAN_FRONTEND=noninteractive
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV BUNDLE_JOBS=8
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV BUNDLE_RETRY=3
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV BUNDLE_WITHOUT=development:test
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV DOCKER=1
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV APP_USER=app
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV APP_PATH=/app
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV APP_DATA_PATH=/var/openproject/assets
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV BUNDLE_PATH=/app/vendor/bundle
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV BUNDLE_APP_CONFIG=/app/.bundle
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV PGVERSION=17
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV PGVERSION_CHOICES=13 15 17
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV PGBIN=/usr/lib/postgresql/17/bin
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV PATH=/usr/lib/postgresql/17/bin:/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV BUNDLE_WITHOUT=development:test
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV SECRET_KEY_BASE=OVERWRITE_ME
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV RAILS_ENV=production
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV RAILS_LOG_TO_STDOUT=1
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV RAILS_SERVE_STATIC_FILES=1
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV OPENPROJECT_EDITION=standard
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV OPENPROJECT_INSTALLATION__TYPE=docker
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV OPENPROJECT_ATTACHMENTS__STORAGE__PATH=/var/openproject/assets/files
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV OPENPROJECT_RAILS__CACHE__STORE=file_store
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV OPENPROJECT_ANGULAR_UGLIFY=true
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV OPENPROJECT_COLLABORATIVE__EDITING__HOCUSPOCUS__URL=auto
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)ENV OPENPROJECT_COLLABORATIVE__EDITING__HOCUSPOCUS__SECRET=
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)RUN |2 NODE_VERSION=22.21.0 BIM_SUPPORT=true /bin/sh -c useradd -d /home/$APP_USER -m $APP_USER && mkdir -p $APP_PATH && chown $APP_USER:$APP_USER $APP_PATH && mkdir -p $APP_DATA_PATH && chown $APP_USER:$APP_USER $APP_DATA_PATH && chmod g+rwx $APP_DATA_PATH # buildkit
2026-05-13 06:17:45 UTC (buildkit.dockerfile.v0)WORKDIR /app
2026-05-13 06:17:46 UTC (buildkit.dockerfile.v0)RUN |2 NODE_VERSION=22.21.0 BIM_SUPPORT=true /bin/sh -c gem install bundler --no-document # buildkit
2026-05-13 06:17:46 UTC (buildkit.dockerfile.v0)COPY ./docker/prod/setup/preinstall-common.sh ./docker/prod/setup/preinstall-common.sh # buildkit
2026-05-13 06:18:24 UTC (buildkit.dockerfile.v0)RUN |2 NODE_VERSION=22.21.0 BIM_SUPPORT=true /bin/sh -c ./docker/prod/setup/preinstall-common.sh # buildkit
2026-05-13 06:19:39 UTC (buildkit.dockerfile.v0)COPY --chown=app:app /app /app # buildkit
2026-05-13 06:19:39 UTC (buildkit.dockerfile.v0)RUN |2 NODE_VERSION=22.21.0 BIM_SUPPORT=true /bin/sh -c ./docker/prod/setup/postinstall-common.sh && cp ./config/database.production.yml config/database.yml && ln -s $APP_PATH/docker/prod/setup/.irbrc /home/$APP_USER/ # buildkit
2026-05-13 06:19:39 UTC (buildkit.dockerfile.v0)ENV OPENPROJECT_RAILS__CACHE__STORE=memcache
2026-05-13 06:19:39 UTC (buildkit.dockerfile.v0)ENV DATABASE_URL=postgres://openproject:openproject@127.0.0.1/openproject
2026-05-13 06:19:39 UTC (buildkit.dockerfile.v0)ENV PGDATA=/var/openproject/pgdata
2026-05-13 06:19:40 UTC (buildkit.dockerfile.v0)COPY /go/bin/gosu /usr/local/bin/gosu # buildkit
2026-05-13 06:19:40 UTC (buildkit.dockerfile.v0)RUN |2 NODE_VERSION=22.21.0 BIM_SUPPORT=true /bin/sh -c chmod +x /usr/local/bin/gosu && gosu nobody true # buildkit
2026-05-13 06:19:41 UTC (buildkit.dockerfile.v0)COPY --chown=app:app /app /opt/hocuspocus # buildkit
2026-05-13 06:19:41 UTC (buildkit.dockerfile.v0)COPY /usr/local/bin/node /usr/local/bin/node # buildkit
2026-05-13 06:19:42 UTC (buildkit.dockerfile.v0)COPY /usr/local/lib/node_modules /usr/local/lib/node_modules # buildkit
2026-05-13 06:20:38 UTC (buildkit.dockerfile.v0)RUN |2 NODE_VERSION=22.21.0 BIM_SUPPORT=true /bin/sh -c ./docker/prod/setup/postinstall-onprem.sh && ln -sf ../lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm && ln -sf ../lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx && ln -sf ../lib/node_modules/corepack/dist/corepack.js /usr/local/bin/corepack && ln -s /app/docker/prod/setup/.irbrc /root/ # buildkit
2026-05-13 06:20:38 UTC (buildkit.dockerfile.v0)EXPOSE [80/tcp]
2026-05-13 06:20:38 UTC (buildkit.dockerfile.v0)VOLUME [/var/openproject/pgdata /var/openproject/assets]
2026-05-13 06:20:38 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["./docker/prod/entrypoint.sh"]
2026-05-13 06:20:38 UTC (buildkit.dockerfile.v0)CMD ["./docker/prod/supervisord"]
2026-05-13 06:22:02 UTC
737 MB
/var/openproject/assets
APP_PATH/app
APP_USERapp
BUNDLE_APP_CONFIG/app/.bundle
BUNDLE_JOBS8
BUNDLE_PATH/app/vendor/bundle
BUNDLE_RETRY3
BUNDLE_SILENCE_ROOT_WARNING1
BUNDLE_WITHOUTdevelopment:test
DATABASE_URLpostgres://openproject:openproject@127.0.0.1/openproject
DEBIAN_FRONTENDnoninteractive
DOCKER1
GEM_HOME/usr/local/bundle
LANGC.UTF-8
OPENPROJECT_ANGULAR_UGLIFYtrue
OPENPROJECT_ATTACHMENTS__STORAGE__PATH/var/openproject/assets/files
OPENPROJECT_COLLABORATIVE__EDITING__HOCUSPOCUS__SECRET OPENPROJECT_COLLABORATIVE__EDITING__HOCUSPOCUS__URLauto
OPENPROJECT_EDITIONstandard
OPENPROJECT_INSTALLATION__TYPEdocker
OPENPROJECT_RAILS__CACHE__STOREmemcache
PATH/usr/lib/postgresql/17/bin:/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PGBIN/usr/lib/postgresql/17/bin
PGDATA/var/openproject/pgdata
PGVERSION17
PGVERSION_CHOICES13 15 17
RAILS_ENVproduction
RAILS_LOG_TO_STDOUT1
RAILS_SERVE_STATIC_FILES1
RUBY_DOWNLOAD_SHA2560531fe57dfdb56bf591620d2450642ea0e0964f3512a6ebee7dc9305de69395f
RUBY_DOWNLOAD_URLhttps://cache.ruby-lang.org/pub/ruby/4.0/ruby-4.0.1.tar.xz
RUBY_VERSION4.0.1
SECRET_KEY_BASEOVERWRITE_ME
USE_JEMALLOCfalse
[#000] sha256:f4badedbec24858ef2dc51256f6418328e305e9c3c5a5e093581f83425618bd5 - 3.9% (28.7 MB)
[#001] sha256:c904e1b5e5e936d55170192fae7272c2d2b48b6005100eb09661e8bd1c8f30df - 0.16% (1.2 MB)
[#002] sha256:6b2589f7e4340917c6482d6326a6a58a77baf92baef27e6cc312277c65de8826 - 0.0% (190 Bytes)
[#003] sha256:b2c511796a7337437c7e6f09b1f8dee78a5405d820ce5c126095c30bb8f6f708 - 6.4% (47.2 MB)
[#004] sha256:70c45987727097d9febf18549b3e46d158adfe0266192cc8e66ed15ce48c8407 - 0.0% (143 Bytes)
[#005] sha256:5b49332868da85cf6e1394170aba9fe69fa9636b15438a670f89f6585439d884 - 0.0% (3.31 KB)
[#006] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)
[#007] sha256:22113fc326a6c45499c4c058135eee1be7750fa57caa7b93c657718d6db2b0e6 - 0.12% (892 KB)
[#008] sha256:8c81bf5788d9ca29cc8105273f3e4d5f44505aad30120aa0d5451ff4062b5b70 - 0.0% (1.38 KB)
[#009] sha256:c83ebbf3a369881c95168f5b78a444e71715467326a3453f440b37b1fe398981 - 10.26% (75.6 MB)
[#010] sha256:50276bea2db4da0551fd19a23b522c7e19d0ffffb01a3f85019b7ba60b96fce6 - 44.87% (331 MB)
[#011] sha256:d59892c0008edb7d9c49069a40ad86f41bcccbd2dedb79f2da9747032a406e4a - 0.0% (1.36 KB)
[#012] sha256:d58f57663987b2860dee024199f25d96554c860df321b2a90d270ff5faecfdf9 - 0.09% (706 KB)
[#013] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)
[#014] sha256:843df71628409bb144ab3ece07e7e50a86e8b55aa874679c5f5f760cff4e9c39 - 7.13% (52.6 MB)
[#015] sha256:216f8d1bfa76d169ab5089d29fe150272c2866039b6de4ed7f2513487a190ea2 - 5.79% (42.7 MB)
[#016] sha256:fa829f307734f89856f1e7d89ad50e16d20a010018d57530201db10dfeb0ac73 - 0.4% (2.96 MB)
[#017] sha256:23aa73906926fa4aaec412a7a1a3c9e951e988b06f2ddc1aa8622036a5b3e9ad - 20.86% (154 MB)
# debian.sh --arch 'arm64' out/ 'trixie' '@1773619200'
2026-03-16 23:13:43 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c set -eux; apt-get update; apt-get install -y --no-install-recommends ca-certificates ; apt-get dist-clean # buildkit
2026-03-16 23:13:43 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c set -eux; mkdir -p /usr/local/etc; echo 'gem: --no-document' >> /usr/local/etc/gemrc # buildkit
2026-03-16 23:16:10 UTC (buildkit.dockerfile.v0)ENV LANG=C.UTF-8
2026-03-16 23:16:10 UTC (buildkit.dockerfile.v0)ENV RUBY_VERSION=4.0.1
2026-03-16 23:16:10 UTC (buildkit.dockerfile.v0)ENV RUBY_DOWNLOAD_URL=https://cache.ruby-lang.org/pub/ruby/4.0/ruby-4.0.1.tar.xz
2026-03-16 23:16:10 UTC (buildkit.dockerfile.v0)ENV RUBY_DOWNLOAD_SHA256=0531fe57dfdb56bf591620d2450642ea0e0964f3512a6ebee7dc9305de69395f
2026-03-16 23:16:10 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends dpkg-dev libgdbm-dev ruby autoconf bzip2 g++ gcc libbz2-dev libffi-dev libgdbm-compat-dev libglib2.0-dev libgmp-dev libncurses-dev libssl-dev libxml2-dev libxslt-dev libyaml-dev make wget xz-utils zlib1g-dev ; rustArch=; dpkgArch="$(dpkg --print-architecture)"; case "$dpkgArch" in 'amd64') rustArch='x86_64-unknown-linux-gnu'; rustupUrl='https://static.rust-lang.org/rustup/archive/1.28.2/x86_64-unknown-linux-gnu/rustup-init'; rustupSha256='20a06e644b0d9bd2fbdbfd52d42540bdde820ea7df86e92e533c073da0cdd43c' ;; 'arm64') rustArch='aarch64-unknown-linux-gnu'; rustupUrl='https://static.rust-lang.org/rustup/archive/1.28.2/aarch64-unknown-linux-gnu/rustup-init'; rustupSha256='e3853c5a252fca15252d07cb23a1bdd9377a8c6f3efa01531109281ae47f841c' ;; esac; if [ -n "$rustArch" ]; then mkdir -p /tmp/rust; wget -O /tmp/rust/rustup-init "$rustupUrl"; echo "$rustupSha256 */tmp/rust/rustup-init" | sha256sum --check --strict; chmod +x /tmp/rust/rustup-init; export RUSTUP_HOME='/tmp/rust/rustup' CARGO_HOME='/tmp/rust/cargo'; export PATH="$CARGO_HOME/bin:$PATH"; /tmp/rust/rustup-init -y --no-modify-path --profile minimal --default-toolchain '1.91.1' --default-host "$rustArch"; rustc --version; cargo --version; fi; wget -O ruby.tar.xz "$RUBY_DOWNLOAD_URL"; echo "$RUBY_DOWNLOAD_SHA256 *ruby.tar.xz" | sha256sum --check --strict; mkdir -p /usr/src/ruby; tar -xJf ruby.tar.xz -C /usr/src/ruby --strip-components=1; rm ruby.tar.xz; cd /usr/src/ruby; autoconf; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; ./configure --build="$gnuArch" --disable-install-doc --enable-shared ${rustArch:+--enable-yjit} ${rustArch:+--enable-zjit} ; make -j "$(nproc)"; make install; rm -rf /tmp/rust; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark > /dev/null; find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); printf "*%s\n", so }' | sort -u | xargs -r dpkg-query --search | awk 'sub(":$", "", $1) { print $1 }' | sort -u | xargs -r apt-mark manual ; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; apt-get dist-clean; cd /; rm -r /usr/src/ruby; if dpkg -l | grep -i ruby; then exit 1; fi; [ "$(command -v ruby)" = '/usr/local/bin/ruby' ]; ruby --version; gem --version; bundle --version # buildkit
2026-03-16 23:16:10 UTC (buildkit.dockerfile.v0)ENV GEM_HOME=/usr/local/bundle
2026-03-16 23:16:10 UTC (buildkit.dockerfile.v0)ENV BUNDLE_SILENCE_ROOT_WARNING=1 BUNDLE_APP_CONFIG=/usr/local/bundle
2026-03-16 23:16:10 UTC (buildkit.dockerfile.v0)ENV PATH=/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2026-03-16 23:16:10 UTC (buildkit.dockerfile.v0)RUN /bin/sh -c set -eux; mkdir "$GEM_HOME"; chmod 1777 "$GEM_HOME" # buildkit
2026-03-16 23:16:10 UTC (buildkit.dockerfile.v0)CMD ["irb"]
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)LABEL maintainer=operations@openproject.com
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ARG NODE_VERSION=22.21.0
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ARG BIM_SUPPORT=false
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV USE_JEMALLOC=false
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV DEBIAN_FRONTEND=noninteractive
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV BUNDLE_JOBS=8
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV BUNDLE_RETRY=3
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV BUNDLE_WITHOUT=development:test
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV DOCKER=1
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV APP_USER=app
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV APP_PATH=/app
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV APP_DATA_PATH=/var/openproject/assets
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV BUNDLE_PATH=/app/vendor/bundle
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV BUNDLE_APP_CONFIG=/app/.bundle
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV PGVERSION=17
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV PGVERSION_CHOICES=13 15 17
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV PGBIN=/usr/lib/postgresql/17/bin
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV PATH=/usr/lib/postgresql/17/bin:/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV BUNDLE_WITHOUT=development:test
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV SECRET_KEY_BASE=OVERWRITE_ME
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV RAILS_ENV=production
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV RAILS_LOG_TO_STDOUT=1
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV RAILS_SERVE_STATIC_FILES=1
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV OPENPROJECT_EDITION=standard
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV OPENPROJECT_INSTALLATION__TYPE=docker
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV OPENPROJECT_ATTACHMENTS__STORAGE__PATH=/var/openproject/assets/files
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV OPENPROJECT_RAILS__CACHE__STORE=file_store
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV OPENPROJECT_ANGULAR_UGLIFY=true
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV OPENPROJECT_COLLABORATIVE__EDITING__HOCUSPOCUS__URL=auto
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)ENV OPENPROJECT_COLLABORATIVE__EDITING__HOCUSPOCUS__SECRET=
2026-05-13 06:17:50 UTC (buildkit.dockerfile.v0)RUN |2 NODE_VERSION=22.21.0 BIM_SUPPORT=false /bin/sh -c useradd -d /home/$APP_USER -m $APP_USER && mkdir -p $APP_PATH && chown $APP_USER:$APP_USER $APP_PATH && mkdir -p $APP_DATA_PATH && chown $APP_USER:$APP_USER $APP_DATA_PATH && chmod g+rwx $APP_DATA_PATH # buildkit
2026-05-13 06:17:51 UTC (buildkit.dockerfile.v0)WORKDIR /app
2026-05-13 06:17:51 UTC (buildkit.dockerfile.v0)RUN |2 NODE_VERSION=22.21.0 BIM_SUPPORT=false /bin/sh -c gem install bundler --no-document # buildkit
2026-05-13 06:17:52 UTC (buildkit.dockerfile.v0)COPY ./docker/prod/setup/preinstall-common.sh ./docker/prod/setup/preinstall-common.sh # buildkit
2026-05-13 06:18:29 UTC (buildkit.dockerfile.v0)RUN |2 NODE_VERSION=22.21.0 BIM_SUPPORT=false /bin/sh -c ./docker/prod/setup/preinstall-common.sh # buildkit
2026-05-13 06:20:19 UTC (buildkit.dockerfile.v0)COPY --chown=app:app /app /app # buildkit
2026-05-13 06:20:19 UTC (buildkit.dockerfile.v0)RUN |2 NODE_VERSION=22.21.0 BIM_SUPPORT=false /bin/sh -c ./docker/prod/setup/postinstall-common.sh && cp ./config/database.production.yml config/database.yml && ln -s $APP_PATH/docker/prod/setup/.irbrc /home/$APP_USER/ # buildkit
2026-05-13 06:20:19 UTC (buildkit.dockerfile.v0)ENV OPENPROJECT_RAILS__CACHE__STORE=memcache
2026-05-13 06:20:19 UTC (buildkit.dockerfile.v0)ENV DATABASE_URL=postgres://openproject:openproject@127.0.0.1/openproject
2026-05-13 06:20:19 UTC (buildkit.dockerfile.v0)ENV PGDATA=/var/openproject/pgdata
2026-05-13 06:20:19 UTC (buildkit.dockerfile.v0)COPY /go/bin/gosu /usr/local/bin/gosu # buildkit
2026-05-13 06:20:19 UTC (buildkit.dockerfile.v0)RUN |2 NODE_VERSION=22.21.0 BIM_SUPPORT=false /bin/sh -c chmod +x /usr/local/bin/gosu && gosu nobody true # buildkit
2026-05-13 06:20:21 UTC (buildkit.dockerfile.v0)COPY --chown=app:app /app /opt/hocuspocus # buildkit
2026-05-13 06:20:21 UTC (buildkit.dockerfile.v0)COPY /usr/local/bin/node /usr/local/bin/node # buildkit
2026-05-13 06:20:23 UTC (buildkit.dockerfile.v0)COPY /usr/local/lib/node_modules /usr/local/lib/node_modules # buildkit
2026-05-13 06:22:02 UTC (buildkit.dockerfile.v0)RUN |2 NODE_VERSION=22.21.0 BIM_SUPPORT=false /bin/sh -c ./docker/prod/setup/postinstall-onprem.sh && ln -sf ../lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm && ln -sf ../lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx && ln -sf ../lib/node_modules/corepack/dist/corepack.js /usr/local/bin/corepack && ln -s /app/docker/prod/setup/.irbrc /root/ # buildkit
2026-05-13 06:22:02 UTC (buildkit.dockerfile.v0)EXPOSE [80/tcp]
2026-05-13 06:22:02 UTC (buildkit.dockerfile.v0)VOLUME [/var/openproject/pgdata /var/openproject/assets]
2026-05-13 06:22:02 UTC (buildkit.dockerfile.v0)ENTRYPOINT ["./docker/prod/entrypoint.sh"]
2026-05-13 06:22:02 UTC (buildkit.dockerfile.v0)CMD ["./docker/prod/supervisord"]
Please be careful as this will not just delete the reference but also the actual content!
For example when you have latest and v1.2.3 both pointing to the same image
the deletion of latest will also permanently remove v1.2.3.