Namespace
joplin
Image / Tag
server:arm64-3.5.1
Content Digest
sha256:b2c3fd8f222f0337a3f06861d51d2fe9d6ac956b410e5a2c63ca27fa57f71604
Details
Created

2025-12-03 12:30:43 UTC

Size

529 MB

Content Digest
Labels
  • org.opencontainers.image.created
    2025-12-03T12:24:39+00:00
  • org.opencontainers.image.description
    Docker image for Joplin Server
  • org.opencontainers.image.revision
    1a3d572
  • org.opencontainers.image.source
    https://github.com/laurent22/joplin.git
  • org.opencontainers.image.title
    Joplin Server
  • org.opencontainers.image.url
    https://joplinapp.org/
  • org.opencontainers.image.version
    3.5.1

Environment
NODE_ENV

production

NODE_VERSION

24.11.1

PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PM2_HOME

/opt/pm2

RUNNING_IN_DOCKER

1

YARN_VERSION

1.22.22


Layers

[#000] sha256:1aee4545ebb8911538c1c2ebce2416c85af34096ca1a65bbe42a4ca157ca3fa2 - 5.07% (26.8 MB)

[#001] sha256:151457d95a5866436937e5d27d506481b8563d00b639fb2b4a8c40a19071660b - 0.0% (3.24 KB)

[#002] sha256:29f06c434daecdadc04d43fdd466b6fb9dbc3a7515a349f4ad896caa108024a7 - 8.86% (46.8 MB)

[#003] sha256:4e46b6b0127320b716b5e35086cb4b94ba3bf4e19a49249a698f5929afeffb55 - 0.31% (1.63 MB)

[#004] sha256:6ed1a4ba7d0fddb1a498d6fadc241e9796544f30a004f0eaf153239134f91b4d - 0.0% (445 Bytes)

[#005] sha256:a1202cfb5c7f1c01d608d12a83f28288025657b917da0430749079b9e97927c4 - 0.0% (3.29 KB)

[#006] sha256:80541004febf7e0181e9ecd8af0f6b547d1a495727fa8b79c6c89746ae18a22a - 2.48% (13.1 MB)

[#007] sha256:d513599aa262b6c8d0a3fd6e27a93e6ad431f7274378c2c43a4f3915814bd5ca - 80.37% (425 MB)

[#008] sha256:ee3391ee7f1fe05c69a290378566326defd23e3a725619702915c0c08a807432 - 0.0% (9.63 KB)

[#009] sha256:1e54e6a22da0eb8b812b24c208038b0ec75f071612bae4c43063e3fa3f6680f0 - 2.91% (15.4 MB)

[#010] sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1 - 0.0% (32 Bytes)


History
2025-11-17 00:00:00 UTC (debuerreotype 0.16)

# debian.sh --arch 'arm64' out/ 'bookworm' '@1763337600'

2025-11-18 04:00:29 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c groupadd --gid 1000 node && useradd --uid 1000 --gid node --shell /bin/bash --create-home node # buildkit

2025-11-18 04:00:49 UTC (buildkit.dockerfile.v0)

ENV NODE_VERSION=24.11.1

2025-11-18 04:00:49 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c ARCH= OPENSSL_ARCH= && dpkgArch="$(dpkg --print-architecture)" && case "${dpkgArch##*-}" in amd64) ARCH='x64' OPENSSL_ARCH='linux-x86_64';; ppc64el) ARCH='ppc64le' OPENSSL_ARCH='linux-ppc64le';; s390x) ARCH='s390x' OPENSSL_ARCH='linux*-s390x';; arm64) ARCH='arm64' OPENSSL_ARCH='linux-aarch64';; armhf) ARCH='armv7l' OPENSSL_ARCH='linux-armv4';; i386) ARCH='x86' OPENSSL_ARCH='linux-elf';; *) echo "unsupported architecture"; exit 1 ;; esac && set -ex && apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr xz-utils libatomic1 --no-install-recommends && rm -rf /var/lib/apt/lists/* && export GNUPGHOME="$(mktemp -d)" && for key in 5BE8A3F6C8A5C01D106C0AD820B1A390B168D356 DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 CC68F5A3106FF448322E48ED27F5E38D5B0A215F 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C 108F52B48DB57BB0CC439B2997B01419BD92F80A A363A499291CBBC940DD62E41F10027AF002F8B0 ; do { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } || { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ; done && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc && gpgconf --kill all && rm -rf "$GNUPGHOME" && grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - && tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner && rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt && find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; && apt-mark auto '.*' > /dev/null && find /usr/local -type f -executable -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' | sort -u | xargs -r dpkg-query --search | cut -d: -f1 | sort -u | xargs -r apt-mark manual && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false && ln -s /usr/local/bin/node /usr/local/bin/nodejs && node --version && npm --version && rm -rf /tmp/* # buildkit

2025-11-18 04:00:49 UTC (buildkit.dockerfile.v0)

ENV YARN_VERSION=1.22.22

2025-11-18 04:01:01 UTC (buildkit.dockerfile.v0)

RUN /bin/sh -c set -ex && savedAptMark="$(apt-mark showmanual)" && apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr --no-install-recommends && rm -rf /var/lib/apt/lists/* && export GNUPGHOME="$(mktemp -d)" && for key in 6A010C5166006599AA17F08146C2130DFD2497F5 ; do { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } || { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ; done && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && gpgconf --kill all && rm -rf "$GNUPGHOME" && mkdir -p /opt && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ && ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn && ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && apt-mark auto '.*' > /dev/null && { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; } && find /usr/local -type f -executable -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' | sort -u | xargs -r dpkg-query --search | cut -d: -f1 | sort -u | xargs -r apt-mark manual && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false && yarn --version && rm -rf /tmp/* # buildkit

2025-11-18 04:01:01 UTC (buildkit.dockerfile.v0)

COPY docker-entrypoint.sh /usr/local/bin/ # buildkit

2025-11-18 04:01:01 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["docker-entrypoint.sh"]

2025-11-18 04:01:01 UTC (buildkit.dockerfile.v0)

CMD ["node"]

2025-12-03 12:24:52 UTC (buildkit.dockerfile.v0)

ARG user=joplin

2025-12-03 12:24:52 UTC (buildkit.dockerfile.v0)

RUN |1 user=joplin /bin/sh -c useradd --create-home --shell /bin/bash $user # buildkit

2025-12-03 12:25:00 UTC (buildkit.dockerfile.v0)

RUN |1 user=joplin /bin/sh -c npm i -g pm2@5.4.3 && mkdir -p /opt/pm2 && chown -R $user:$user /opt/pm2 # buildkit

2025-12-03 12:25:00 UTC (buildkit.dockerfile.v0)

ENV PM2_HOME=/opt/pm2

2025-12-03 12:25:00 UTC (buildkit.dockerfile.v0)

USER joplin

2025-12-03 12:30:37 UTC (buildkit.dockerfile.v0)

COPY --chown=joplin:joplin /build/packages /home/joplin/packages # buildkit

2025-12-03 12:30:37 UTC (buildkit.dockerfile.v0)

COPY --chown=joplin:joplin /usr/bin/tini /usr/local/bin/tini # buildkit

2025-12-03 12:30:43 UTC (buildkit.dockerfile.v0)

RUN |1 user=joplin /bin/sh -c pm2 install https://registry.npmjs.org/pm2-logrotate/-/pm2-logrotate-3.0.0.tgz && pm2 set pm2-logrotate:max_size 100MB && pm2 set pm2-logrotate:retain 5 && pm2 set pm2-logrotate:compress true # buildkit

2025-12-03 12:30:43 UTC (buildkit.dockerfile.v0)

ENV NODE_ENV=production

2025-12-03 12:30:43 UTC (buildkit.dockerfile.v0)

ENV RUNNING_IN_DOCKER=1

2025-12-03 12:30:43 UTC (buildkit.dockerfile.v0)

EXPOSE []

2025-12-03 12:30:43 UTC (buildkit.dockerfile.v0)

WORKDIR /home/joplin/packages/server

2025-12-03 12:30:43 UTC (buildkit.dockerfile.v0)

ENTRYPOINT ["tini" "--"]

2025-12-03 12:30:43 UTC (buildkit.dockerfile.v0)

CMD ["yarn" "start-prod"]

2025-12-03 12:30:43 UTC (buildkit.dockerfile.v0)

ARG BUILD_DATE=2025-12-03T12:24:39+00:00

2025-12-03 12:30:43 UTC (buildkit.dockerfile.v0)

ARG REVISION=1a3d572

2025-12-03 12:30:43 UTC (buildkit.dockerfile.v0)

ARG VERSION=3.5.1

2025-12-03 12:30:43 UTC (buildkit.dockerfile.v0)

ARG SOURCE=https://github.com/laurent22/joplin.git

2025-12-03 12:30:43 UTC (buildkit.dockerfile.v0)

LABEL org.opencontainers.image.created=2025-12-03T12:24:39+00:00 org.opencontainers.image.title=Joplin Server org.opencontainers.image.description=Docker image for Joplin Server org.opencontainers.image.url=https://joplinapp.org/ org.opencontainers.image.revision=1a3d572 org.opencontainers.image.source=https://github.com/laurent22/joplin.git org.opencontainers.image.version=3.5.1

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