SUBCULT

Software for independent culture. Tools for discovering clips, searching recordings, making music visuals, publishing link pages, and organizing shows.

Chicago, IL

patchwork-api (98b5cd58feb337069d5f24867155d458a209e84d)

Published 2026-11-05 16:04:37 -06:00 by PatrickFanella

Installation

docker pull git.subcult.tv/subculture-collective/patchwork-api:98b5cd58feb337069d5f24867155d458a209e84d
sha256:3f137fca906a99db8704030995668b33f3bb403a88fb1ea54f813c188921b27b

Images

Digest OS / Arch Size
f626d4e8ba linux/amd64 128 MiB

Image Layers ( linux/amd64)

ADD alpine-minirootfs-3.23.4-x86_64.tar.gz / # buildkit
CMD ["/bin/sh"]
ENV NODE_VERSION=22.22.2
RUN /bin/sh -c addgroup -g 1000 node && adduser -u 1000 -G node -s /bin/sh -D node && apk add --no-cache libstdc++ && apk add --no-cache --virtual .build-deps curl && ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)" && case "${alpineArch##*-}" in x86_64) ARCH='x64' CHECKSUM="c58109c8da448196f0d811df7a6079748678132067e3b53d01c8c8a4bcd86992" OPENSSL_ARCH=linux-x86_64;; x86) OPENSSL_ARCH=linux-elf;; aarch64) OPENSSL_ARCH=linux-aarch64;; arm*) OPENSSL_ARCH=linux-armv4;; ppc64le) OPENSSL_ARCH=linux-ppc64le;; s390x) OPENSSL_ARCH=linux-s390x;; *) ;; esac && if [ -n "${CHECKSUM}" ]; then set -eu; curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz"; echo "$CHECKSUM node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" | sha256sum -c - && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner && ln -s /usr/local/bin/node /usr/local/bin/nodejs; else echo "Building from source" && apk add --no-cache --virtual .build-deps-full binutils-gold g++ gcc gnupg libgcc linux-headers make python3 py-setuptools && 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.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.tar.xz\$" SHASUMS256.txt | sha256sum -c - && tar -xf "node-v$NODE_VERSION.tar.xz" && cd "node-v$NODE_VERSION" && ./configure && make -j$(getconf _NPROCESSORS_ONLN) V= && make install && apk del .build-deps-full && cd .. && rm -Rf "node-v$NODE_VERSION" && rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; fi && rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" && find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; && apk del .build-deps && node --version && npm --version && rm -rf /tmp/* # buildkit
ENV YARN_VERSION=1.22.22
RUN /bin/sh -c apk add --no-cache --virtual .build-deps-yarn curl gnupg tar && 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 && apk del .build-deps-yarn && yarn --version && rm -rf /tmp/* # buildkit
COPY docker-entrypoint.sh /usr/local/bin/ # buildkit
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["node"]
WORKDIR /app
ARG ALPINE_SECURITY_REFRESH=2026-10-11
RUN |1 ALPINE_SECURITY_REFRESH=2026-10-11 /bin/sh -c test -n "$ALPINE_SECURITY_REFRESH" && apk upgrade --no-cache && wget -qO /tmp/npm.tgz https://registry.npmjs.org/npm/-/npm-12.0.1.tgz && echo '5e02bea4c784df1c3bbea9e55c7d2232329e1d1920c254789833ed9e8b0a5f16 /tmp/npm.tgz' | sha256sum -c - && mkdir /tmp/npm && tar -xzf /tmp/npm.tgz -C /tmp/npm && rm -rf /usr/local/lib/node_modules/npm && mv /tmp/npm/package /usr/local/lib/node_modules/npm && rm -rf /tmp/npm /tmp/npm.tgz && wget -qO /tmp/brace-expansion.tgz https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz && echo 'ef8448ec78f20b692f04fa6d01f39b5ab34c66404bea3429f5a39c6c9e0be8b4 /tmp/brace-expansion.tgz' | sha256sum -c - && mkdir /tmp/brace-expansion && tar -xzf /tmp/brace-expansion.tgz -C /tmp/brace-expansion && rm -rf /usr/local/lib/node_modules/npm/node_modules/brace-expansion && mv /tmp/brace-expansion/package /usr/local/lib/node_modules/npm/node_modules/brace-expansion && rm -rf /tmp/brace-expansion /tmp/brace-expansion.tgz && wget -qO /tmp/undici.tgz https://registry.npmjs.org/undici/-/undici-6.29.1.tgz && echo '29c4b8e0b2d86cb8795571c1959012ce057a14ecfd34858335f47c31e770a04f /tmp/undici.tgz' | sha256sum -c - && mkdir /tmp/undici && tar -xzf /tmp/undici.tgz -C /tmp/undici && rm -rf /usr/local/lib/node_modules/npm/node_modules/undici && mv /tmp/undici/package /usr/local/lib/node_modules/npm/node_modules/undici && rm -rf /tmp/undici /tmp/undici.tgz && wget -qO /tmp/ip-address.tgz https://registry.npmjs.org/ip-address/-/ip-address-10.4.0.tgz && echo 'e1faffa2aa19b4382664fd78ab9e5bf06a6ddcc525bd9c82bd74522487be2932 /tmp/ip-address.tgz' | sha256sum -c - && mkdir /tmp/ip-address && tar -xzf /tmp/ip-address.tgz -C /tmp/ip-address && rm -rf /usr/local/lib/node_modules/npm/node_modules/ip-address && mv /tmp/ip-address/package /usr/local/lib/node_modules/npm/node_modules/ip-address && rm -rf /tmp/ip-address /tmp/ip-address.tgz && wget -qO /tmp/tar.tgz https://registry.npmjs.org/tar/-/tar-7.5.21.tgz && echo 'bcedf25a21daecd1a18fb5e19ab855b7d79ec8ef1da175e8ba85cfc0ed0069d1 /tmp/tar.tgz' | sha256sum -c - && mkdir /tmp/tar && tar -xzf /tmp/tar.tgz -C /tmp/tar && rm -rf /usr/local/lib/node_modules/npm/node_modules/tar && mv /tmp/tar/package /usr/local/lib/node_modules/npm/node_modules/tar && rm -rf /tmp/tar /tmp/tar.tgz && npm --version # buildkit
COPY /runtime-node-modules /app/node_modules # buildkit
COPY /app /app # buildkit
RUN |1 ALPINE_SECURITY_REFRESH=2026-10-11 /bin/sh -c rm -rf /usr/local/lib/node_modules/npm /usr/local/bin/npm /usr/local/bin/npx # buildkit
ARG GIT_SHA=98b5cd58feb337069d5f24867155d458a209e84d
ARG GIT_BRANCH=main
ARG BUILD_VERSION=98b5cd58feb3
ARG CI_RUN_ID=18824
LABEL org.opencontainers.image.revision=98b5cd58feb337069d5f24867155d458a209e84d org.opencontainers.image.version=98b5cd58feb3 org.opencontainers.image.ref.name=main com.patchwork.ci.run-id=18824 com.patchwork.service=api
ENV NODE_ENV=production
EXPOSE [4000/tcp]
CMD ["node" "--import" "tsx" "services/api/src/index.ts"]

Labels

Key Value
com.patchwork.ci.run-id 18824
com.patchwork.service api
org.opencontainers.image.ref.name main
org.opencontainers.image.revision 98b5cd58feb337069d5f24867155d458a209e84d
org.opencontainers.image.version 98b5cd58feb3