mirror of
https://github.com/penpot/penpot.git
synced 2026-10-29 22:10:34 +00:00
- pnpm 12.8.1 (docker/images/Dockerfile.media-processor) - pnpm 12.8.1 (docker/images/Dockerfile.mcp) - pnpm 12.8.1 (docker/images/Dockerfile.exporter) - pnpm 12.8.1 (render-wasm/package.json) - pnpm 12.8.1 (plugins/package.json) - pnpm 12.8.1 (plugins/libs/plugins-styles/package.json) - pnpm 12.8.1 (plugins/libs/plugins-runtime/package.json) - pnpm 12.8.1 (plugins/libs/plugin-types/package.json) - pnpm 12.8.1 (plugins/apps/table-plugin/package.json) - pnpm 12.8.1 (plugins/apps/rename-layers-plugin/package.json) - pnpm 12.8.1 (plugins/apps/poc-tokens-plugin/package.json) - pnpm 12.8.1 (plugins/apps/poc-state-plugin/package.json) - pnpm 12.8.1 (plugins/apps/plugin-api-test-suite/package.json) - pnpm 12.8.1 (plugins/apps/lorem-ipsum-plugin/package.json) - pnpm 12.8.1 (plugins/apps/icons-plugin/package.json) - pnpm 12.8.1 (plugins/apps/example-styles/package.json) - pnpm 12.8.1 (plugins/apps/e2e/package.json) - pnpm 12.8.1 (plugins/apps/create-palette-plugin/package.json) - pnpm 12.8.1 (plugins/apps/contrast-plugin/package.json) - pnpm 12.8.1 (plugins/apps/composable-test-suite/package.json) - pnpm 12.8.1 (plugins/apps/colors-to-tokens-plugin/package.json) - pnpm 12.8.1 (package.json) - pnpm 12.8.1 (media-processor/package.json) - pnpm 12.8.1 (mcp/packages/server/package.json) - pnpm 12.8.1 (mcp/packages/plugin/package.json) - pnpm 12.8.1 (mcp/packages/common/package.json) - pnpm 12.8.1 (mcp/package.json) - pnpm 12.8.1 (library/package.json) - pnpm 12.8.1 (frontend/text-editor/package.json) - pnpm 12.8.1 (frontend/packages/ui/package.json) - pnpm 12.8.1 (frontend/packages/tokenscript/package.json) - pnpm 12.8.1 (frontend/packages/mousetrap/package.json) - pnpm 12.8.1 (frontend/packages/draft-js/package.json) - pnpm 12.8.1 (frontend/package.json) - pnpm 12.8.1 (exporter/package.json) - pnpm 12.8.1 (docs/package.json) - pnpm 12.8.1 (common/package.json) - pnpm 12.8.1 (backend/package.json) Signed-off-by: penpot-renovate[bot] <338182062+penpot-renovate[bot]@users.noreply.github.com>
96 lines
2.9 KiB
Docker
96 lines
2.9 KiB
Docker
# syntax=docker/dockerfile:1
|
|
FROM dhi.io/node:24.21.0-debian13-dev@sha256:2e51e8397b85c3771c554834fb55d7fd5825e7d57a993e00153db42c584b7e58
|
|
LABEL maintainer="Penpot <docker@penpot.app>"
|
|
|
|
ENV LANG=en_US.UTF-8 \
|
|
LC_ALL=en_US.UTF-8 \
|
|
DEBIAN_FRONTEND=noninteractive
|
|
|
|
# passwd provides useradd, not preinstalled on the DHI base image.
|
|
RUN set -ex; \
|
|
apt-get -qq update; \
|
|
apt-get -qqy --no-install-recommends install passwd; \
|
|
useradd -U -M -u 1001 -s /bin/false -d /opt/penpot penpot; \
|
|
apt-get -qqy --no-install-recommends install \
|
|
curl \
|
|
tzdata \
|
|
locales \
|
|
ca-certificates \
|
|
; \
|
|
apt-get clean; \
|
|
rm -rf /var/lib/apt/lists/*; \
|
|
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen; \
|
|
locale-gen; \
|
|
find /usr/share/i18n/locales/ -type f ! -name "en_US" ! -name "POSIX" ! -name "C" -delete;
|
|
|
|
RUN set -ex; \
|
|
apt-get -qq update; \
|
|
apt-get -qqy --no-install-recommends install \
|
|
fontforge \
|
|
woff-tools \
|
|
woff2 \
|
|
\
|
|
libgomp1 \
|
|
libheif1 \
|
|
libjpeg62-turbo \
|
|
liblcms2-2 \
|
|
libopenjp2-7 \
|
|
libpng16-16 \
|
|
librsvg2-2 \
|
|
libtiff6 \
|
|
libwebp7 \
|
|
libwebpdemux2 \
|
|
libwebpmux3 \
|
|
libxml2 \
|
|
libzip5 \
|
|
libzstd1 \
|
|
; \
|
|
apt-get clean; \
|
|
rm -rf /var/lib/apt/lists/*; \
|
|
mkdir -p /opt/penpot; \
|
|
chown -R penpot:penpot /opt/penpot;
|
|
|
|
ARG BUNDLE_PATH="./bundle-media-processor/"
|
|
COPY --chown=penpot:penpot $BUNDLE_PATH /opt/penpot/media-processor/
|
|
|
|
WORKDIR /opt/penpot/media-processor
|
|
|
|
# pnpm ships as a system binary (same tarball + SHA pin as
|
|
# docker/devenv/Dockerfile); ./setup expects it on PATH.
|
|
# Corepack is gone from Node 25+, so nothing here may use it.
|
|
ARG PNPM_VERSION=12.8.1
|
|
RUN set -eux; \
|
|
apt-get -qq update; \
|
|
apt-get -qqy --no-install-recommends install gzip; \
|
|
rm -rf /var/lib/apt/lists/*; \
|
|
ARCH="$(dpkg --print-architecture)"; \
|
|
case "${ARCH}" in \
|
|
aarch64|arm64) \
|
|
PNPM_ARCH='arm64'; \
|
|
PNPM_SHA256='75c5e34d3164fe3d3549580b1b1b59c9dd16543e558dec722b686193cdb7dfa1'; \
|
|
;; \
|
|
amd64|x86_64) \
|
|
PNPM_ARCH='x64'; \
|
|
PNPM_SHA256='db3906881f63e41b655e3b97d473603dc26326c2470d0b1b8083689e1bcbd1e8'; \
|
|
;; \
|
|
*) \
|
|
echo "Unsupported arch: ${ARCH}"; \
|
|
exit 1; \
|
|
;; \
|
|
esac; \
|
|
curl -LfsSo /tmp/pnpm.tar.gz "https://github.com/pnpm/pnpm/releases/download/v${PNPM_VERSION}/pnpm-linux-${PNPM_ARCH}.tar.gz"; \
|
|
echo "${PNPM_SHA256} */tmp/pnpm.tar.gz" | sha256sum -c -; \
|
|
mkdir -p /usr/local/bin; \
|
|
tar -xzf /tmp/pnpm.tar.gz -C /usr/local/bin pnpm; \
|
|
chmod 755 /usr/local/bin/pnpm; \
|
|
rm -f /tmp/pnpm.tar.gz; \
|
|
pnpm --version;
|
|
|
|
# Runs as root: this base image installs Node system-wide (symlinked into
|
|
# /usr/bin), so ./setup needs write access there.
|
|
RUN ./setup && chown -R penpot:penpot /opt/penpot/media-processor
|
|
|
|
USER penpot:penpot
|
|
|
|
CMD ["node", "dist/index.js"]
|