Namespace
openproject
Image / Tag
openproject:17.3.2
Content Digest
sha256:044060c22f51e61d7bb16f712b54de5d0b470a854affd24e4db4e74d4cb32f0c
Details
Created

2026-05-13 06:20:38 UTC

Size

814 MB

Content Digest
Labels
  • io.artifacthub.package.logo-url
    https://raw.githubusercontent.com/opf/openproject/refs/heads/dev/docker/prod/logo.png
  • io.artifacthub.package.readme-url
    https://raw.githubusercontent.com/opf/openproject/refs/heads/dev/docker/prod/README.md
  • maintainer
    operations@openproject.com
  • org.opencontainers.image.created
    2026-05-13T06:17:37.893Z
  • org.opencontainers.image.description
    OpenProject is the leading open source project management software.
  • org.opencontainers.image.documentation
    https://www.openproject.org/docs/installation-and-operations/installation/
  • org.opencontainers.image.licenses
    GPL-3.0
  • org.opencontainers.image.revision
    beac8c3494f89d2d6d8801a21ba310283d833493
  • org.opencontainers.image.source
    https://github.com/opf/openproject
  • org.opencontainers.image.title
    openproject
  • org.opencontainers.image.url
    https://github.com/opf/openproject
  • org.opencontainers.image.vendor
    OpenProject GmbH
  • org.opencontainers.image.version
    17.3.2

Environment
APP_DATA_PATH

/var/openproject/assets

APP_PATH

/app

APP_USER

app

BUNDLE_APP_CONFIG

/app/.bundle

BUNDLE_JOBS

8

BUNDLE_PATH

/app/vendor/bundle

BUNDLE_RETRY

3

BUNDLE_SILENCE_ROOT_WARNING

1

BUNDLE_WITHOUT

development:test

DATABASE_URL

postgres://openproject:openproject@127.0.0.1/openproject

DEBIAN_FRONTEND

noninteractive

DOCKER

1

GEM_HOME

/usr/local/bundle

LANG

C.UTF-8

OPENPROJECT_ANGULAR_UGLIFY

true

OPENPROJECT_ATTACHMENTS__STORAGE__PATH

/var/openproject/assets/files

OPENPROJECT_COLLABORATIVE__EDITING__HOCUSPOCUS__SECRET

OPENPROJECT_COLLABORATIVE__EDITING__HOCUSPOCUS__URL

auto

OPENPROJECT_EDITION

standard

OPENPROJECT_INSTALLATION__TYPE

docker

OPENPROJECT_RAILS__CACHE__STORE

memcache

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

PGVERSION

17

PGVERSION_CHOICES

13 15 17

RAILS_ENV

production

RAILS_LOG_TO_STDOUT

1

RAILS_SERVE_STATIC_FILES

1

RUBY_DOWNLOAD_SHA256

0531fe57dfdb56bf591620d2450642ea0e0964f3512a6ebee7dc9305de69395f

RUBY_DOWNLOAD_URL

https://cache.ruby-lang.org/pub/ruby/4.0/ruby-4.0.1.tar.xz

RUBY_VERSION

4.0.1

SECRET_KEY_BASE

OVERWRITE_ME

USE_JEMALLOC

false


Layers

[#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)


History
2026-03-16 00:00:00 UTC (debuerreotype 0.17)

# 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"]

Details
Created

2026-05-13 06:22:02 UTC

Size

737 MB

Content Digest
Labels
  • io.artifacthub.package.logo-url
    https://raw.githubusercontent.com/opf/openproject/refs/heads/dev/docker/prod/logo.png
  • io.artifacthub.package.readme-url
    https://raw.githubusercontent.com/opf/openproject/refs/heads/dev/docker/prod/README.md
  • maintainer
    operations@openproject.com
  • org.opencontainers.image.created
    2026-05-13T06:17:41.631Z
  • org.opencontainers.image.description
    OpenProject is the leading open source project management software.
  • org.opencontainers.image.documentation
    https://www.openproject.org/docs/installation-and-operations/installation/
  • org.opencontainers.image.licenses
    GPL-3.0
  • org.opencontainers.image.revision
    beac8c3494f89d2d6d8801a21ba310283d833493
  • org.opencontainers.image.source
    https://github.com/opf/openproject
  • org.opencontainers.image.title
    openproject
  • org.opencontainers.image.url
    https://github.com/opf/openproject
  • org.opencontainers.image.vendor
    OpenProject GmbH
  • org.opencontainers.image.version
    17.3.2

Environment
APP_DATA_PATH

/var/openproject/assets

APP_PATH

/app

APP_USER

app

BUNDLE_APP_CONFIG

/app/.bundle

BUNDLE_JOBS

8

BUNDLE_PATH

/app/vendor/bundle

BUNDLE_RETRY

3

BUNDLE_SILENCE_ROOT_WARNING

1

BUNDLE_WITHOUT

development:test

DATABASE_URL

postgres://openproject:openproject@127.0.0.1/openproject

DEBIAN_FRONTEND

noninteractive

DOCKER

1

GEM_HOME

/usr/local/bundle

LANG

C.UTF-8

OPENPROJECT_ANGULAR_UGLIFY

true

OPENPROJECT_ATTACHMENTS__STORAGE__PATH

/var/openproject/assets/files

OPENPROJECT_COLLABORATIVE__EDITING__HOCUSPOCUS__SECRET

OPENPROJECT_COLLABORATIVE__EDITING__HOCUSPOCUS__URL

auto

OPENPROJECT_EDITION

standard

OPENPROJECT_INSTALLATION__TYPE

docker

OPENPROJECT_RAILS__CACHE__STORE

memcache

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

PGVERSION

17

PGVERSION_CHOICES

13 15 17

RAILS_ENV

production

RAILS_LOG_TO_STDOUT

1

RAILS_SERVE_STATIC_FILES

1

RUBY_DOWNLOAD_SHA256

0531fe57dfdb56bf591620d2450642ea0e0964f3512a6ebee7dc9305de69395f

RUBY_DOWNLOAD_URL

https://cache.ruby-lang.org/pub/ruby/4.0/ruby-4.0.1.tar.xz

RUBY_VERSION

4.0.1

SECRET_KEY_BASE

OVERWRITE_ME

USE_JEMALLOC

false


Layers

[#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)


History
2026-03-16 00:00:00 UTC (debuerreotype 0.17)

# 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"]

Danger Zone
Delete Tag

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.

Delete