| ADD alpine-minirootfs-3.24.1-x86_64.tar.gz / # buildkit |
| CMD ["/bin/sh"] |
| LABEL author=Task Venture Capital GmbH <hello@task.vc> |
| WORKDIR /workspace |
| ENV NODE_VERSION_LTS=24.13.0 NVM_DIR=/usr/local/nvm NVM_NODEJS_ORG_MIRROR=https://unofficial-builds.nodejs.org/download/release |
| RUN /bin/sh -c apk add --no-cache bash curl git ca-certificates unzip gcompat libstdc++ tini # buildkit |
| RUN /bin/sh -c mkdir -p $NVM_DIR && curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash # buildkit |
| RUN /bin/sh -c printf '%s\n%s\n%s\n' 'export NVM_DIR="/usr/local/nvm"' '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"' '[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"' > /etc/bash.bashrc # buildkit |
| COPY image_support_files/bash-with-nvm /usr/local/bin/bash-with-nvm # buildkit |
| COPY image_support_files/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh # buildkit |
| COPY image_support_files/configure-pnpm-defaults /usr/local/bin/configure-pnpm-defaults # buildkit |
| RUN /bin/sh -c chmod +x /usr/local/bin/bash-with-nvm /usr/local/bin/docker-entrypoint.sh /usr/local/bin/configure-pnpm-defaults # buildkit |
| SHELL [/usr/local/bin/bash-with-nvm] |
| ENV BASH_ENV=/etc/bash.bashrc |
| ARG TARGETARCH=amd64 |
| RUN |1 TARGETARCH=amd64 /usr/local/bin/bash-with-nvm NVM_MUSL_ARCH=$([ "$TARGETARCH" = "arm64" ] && echo "arm64-musl" || echo "x64-musl") && nvm_get_arch() { echo "$NVM_MUSL_ARCH"; } && nvm install $NODE_VERSION_LTS && nvm alias default $NODE_VERSION_LTS && nvm use default # buildkit |
| ENV NODE_PATH=/usr/local/nvm/versions/node/v24.13.0/lib/node_modules |
| ENV PATH=/usr/local/nvm/versions/node/v24.13.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| ENV PNPM_HOME=/root/.local/share/pnpm |
| RUN |1 TARGETARCH=amd64 /usr/local/bin/bash-with-nvm mkdir -p ${PNPM_HOME} && corepack enable && corepack prepare pnpm@11.5.2 --activate && pnpm -v && configure-pnpm-defaults # buildkit |
| ENV PATH=/root/.local/share/pnpm:/root/.local/share/pnpm/bin:/usr/local/nvm/versions/node/v24.13.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| ENTRYPOINT ["/sbin/tini" "--" "/usr/local/bin/docker-entrypoint.sh"] |
| CMD ["bash"] |
| LABEL author=Task Venture Capital GmbH <hello@task.vc> |
| ENV PNPM_HOME=/root/.local/share/pnpm |
| RUN /usr/local/bin/bash-with-nvm apk add --no-cache build-base python3 linux-headers wget iputils bind-tools # buildkit |
| RUN /usr/local/bin/bash-with-nvm mkdir -p ${PNPM_HOME} # buildkit |
| ENV PATH=/root/.local/share/pnpm:/root/.local/share/pnpm/bin:/root/.local/share/pnpm:/root/.local/share/pnpm/bin:/usr/local/nvm/versions/node/v24.13.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| RUN /usr/local/bin/bash-with-nvm pnpm -v && configure-pnpm-defaults # buildkit |
| ENV IDP_NODE_VERSION=22.22.1 |
| ARG TARGETARCH=amd64 |
| RUN |1 TARGETARCH=amd64 /usr/local/bin/bash-with-nvm IDP_NODE_ARCH=$([ "$TARGETARCH" = "arm64" ] && echo "arm64-musl" || echo "x64-musl") && nvm_get_arch() { echo "$IDP_NODE_ARCH"; } && nvm install "$IDP_NODE_VERSION" && nvm alias default "$IDP_NODE_VERSION" # buildkit |
| ENV NODE_PATH=/usr/local/nvm/versions/node/v22.22.1/lib/node_modules |
| ENV PATH=/usr/local/nvm/versions/node/v22.22.1/bin:/root/.local/share/pnpm:/root/.local/share/pnpm/bin:/root/.local/share/pnpm:/root/.local/share/pnpm/bin:/usr/local/nvm/versions/node/v24.13.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| RUN |1 TARGETARCH=amd64 /usr/local/bin/bash-with-nvm node -e "if (process.version !== 'v22.22.1') process.exit(1)" # buildkit |
| RUN |1 TARGETARCH=amd64 /usr/local/bin/bash-with-nvm corepack enable pnpm && corepack prepare pnpm@11.18.0 --activate && test "$(pnpm --version)" = "11.18.0" # buildkit |
| WORKDIR /app |
| ENV NODE_ENV=production HOME=/tmp |
| COPY --chown=0:0 /app/package.json /app/pnpm-lock.yaml /app/pnpm-workspace.yaml /app/qenv.yml /app/cli.js /app/startup-bootstrap.js /app/license.md /app/ # buildkit |
| COPY --chown=0:0 /app/dist_ts /app/dist_ts # buildkit |
| COPY --chown=0:0 /app/dist_serve /app/dist_serve # buildkit |
| COPY --chown=0:0 /app/scripts/generate-supply-chain-evidence.mjs /app/.build/generate-supply-chain-evidence.mjs # buildkit |
| RUN |1 TARGETARCH=amd64 /usr/local/bin/bash-with-nvm pnpm config set registry https://verdaccio.lossless.digital/ && pnpm config set store-dir .pnpm-store && pnpm config set minimum-release-age-exclude '["@serve.zone/*","@idp.global/*","@git.zone/*","@push.rocks/*","@api.global/*","@design.estate/*"]' --json && pnpm install --prod --frozen-lockfile && pnpm rebuild -r && node /app/.build/generate-supply-chain-evidence.mjs --out=/app/dist_legal && rm -rf /app/.build /app/.pnpm-store /tmp/.cache/node/corepack /tmp/.config/pnpm && chown -R 0:0 /app && chmod -R a+rX,go-w /app # buildkit |
| LABEL org.opencontainers.image.title=idp.global org.opencontainers.image.description=Identity provider server, web UI, OIDC provider, MFA, and passkey runtime org.opencontainers.image.source=https://code.foss.global/idp.global/app.git |
| USER 10001:10001 |
| EXPOSE [2999/tcp] |
| HEALTHCHECK {Test:[CMD-SHELL node -e "fetch('http://127.0.0.1:2999/healthz').then((response) => process.exit(response.ok ? 0 : 1)).catch(() => process.exit(1))"] Interval:30s Timeout:5s StartPeriod:10s StartInterval:0s Retries:3} |
| CMD ["node" "cli.js"] |