| ADD alpine-minirootfs-3.24.3-x86_64.tar.gz / # buildkit |
| CMD ["/bin/sh"] |
| LABEL author=Task Venture Capital GmbH <hello@task.vc> |
| WORKDIR /workspace |
| ENV NODE_VERSION_LTS=24.22.1 NVM_DIR=/usr/local/nvm NVM_NODEJS_ORG_MIRROR=https://unofficial-builds.nodejs.org/download/release |
| RUN /bin/sh -c apk upgrade --no-cache && apk add --no-cache bash coreutils=9.11-r0 curl git ca-certificates openssl=3.5.9-r0 unzip gcompat libstdc++ tini # buildkit |
| RUN /bin/sh -c mkdir -p $NVM_DIR && curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.7/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 |
| RUN /usr/local/bin/bash-with-nvm nvm install $NODE_VERSION_LTS && nvm alias default $NODE_VERSION_LTS && nvm use default && npm install --global npm@11.21.1 --ignore-scripts && test "$(npm --version)" = "11.21.1" # buildkit |
| ENV NODE_PATH=/usr/local/nvm/versions/node/v24.22.1/lib/node_modules |
| ENV PATH=/usr/local/nvm/versions/node/v24.22.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| ENV PNPM_HOME=/root/.local/share/pnpm |
| ENV PATH=/root/.local/share/pnpm:/root/.local/share/pnpm/bin:/usr/local/nvm/versions/node/v24.22.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| RUN /usr/local/bin/bash-with-nvm set -o pipefail && mkdir -p ${PNPM_HOME} && curl -fsSL https://get.pnpm.io/install.sh | env PNPM_VERSION=12.3.1 ENV=/root/.bashrc SHELL=/bin/bash bash - && test "$(pnpm --version)" = "12.3.1" && configure-pnpm-defaults # buildkit |
| COPY third_party/pnpm /usr/share/doc/ht-docker-node/pnpm # buildkit |
| COPY third_party/alpine /usr/share/doc/ht-docker-node/alpine # buildkit |
| COPY image_support_files/install-alpine-materials.mjs /usr/local/lib/ht-docker-node/install-alpine-materials.mjs # buildkit |
| RUN /usr/local/bin/bash-with-nvm node /usr/local/lib/ht-docker-node/install-alpine-materials.mjs verify core # buildkit |
| COPY third_party/node /usr/share/doc/ht-docker-node/node # buildkit |
| COPY image_support_files/verify-runtime-security.mjs /usr/local/lib/ht-docker-node/verify-runtime-security.mjs # buildkit |
| RUN /usr/local/bin/bash-with-nvm node /usr/local/lib/ht-docker-node/verify-runtime-security.mjs # buildkit |
| COPY license.md /usr/share/doc/ht-docker-node/license.md # buildkit |
| ENTRYPOINT ["/sbin/tini" "--" "/usr/local/bin/docker-entrypoint.sh"] |
| CMD ["bash"] |
| WORKDIR /app |
| ENV NODE_ENV=production |
| ENV SERVEZONE_LISTENPORT=3000 |
| COPY /app/package.json ./package.json # buildkit |
| COPY /app/qenv.yml ./qenv.yml # buildkit |
| COPY /app/node_modules ./node_modules # buildkit |
| COPY /app/cli.js ./cli.js # buildkit |
| COPY /app/dist_ts ./dist_ts # buildkit |
| COPY /app/dist_ts_migration ./dist_ts_migration # buildkit |
| COPY /app/dist_serve ./dist_serve # buildkit |
| COPY /app/runtime_support ./runtime_support # buildkit |
| RUN /usr/local/bin/bash-with-nvm set -eu && test "$NVM_DIR" = /usr/local/nvm && test "$PNPM_HOME" = /root/.local/share/pnpm && for runtime in "$NVM_DIR"/versions/node/*; do rm -rf "$runtime/lib/node_modules/npm" "$runtime/lib/node_modules/pnpm" "$runtime/lib/node_modules/corepack"; rm -f "$runtime/bin/npm" "$runtime/bin/npx" "$runtime/bin/pnpm" "$runtime/bin/pnpx" "$runtime/bin/corepack"; done && rm -rf "$PNPM_HOME" "$NVM_DIR/.cache" /root/.npm /root/.cache/pnpm /root/.config/pnpm /root/.local/state/pnpm && for directory in /usr/local/bin /usr/bin /bin; do rm -f "$directory/npm" "$directory/npx" "$directory/pnpm" "$directory/pnpx" "$directory/corepack"; done && node /app/runtime_support/verify-final-runtime.mjs # buildkit |
| LABEL org.opencontainers.image.title=cloudly org.opencontainers.image.description=serve.zone control plane org.opencontainers.image.source=https://code.foss.global/serve.zone/cloudly |
| HEALTHCHECK {Test:[CMD-SHELL node -e "const http=require('node:http');const port=process.env.SERVEZONE_LISTENPORT||3000;const req=http.get({host:'127.0.0.1',port,path:'/status'},res=>process.exit(res.statusCode===200?0:1));req.on('error',()=>process.exit(1));req.setTimeout(5000,()=>{req.destroy();process.exit(1);});"] Interval:30s Timeout:10s StartPeriod:2m0s StartInterval:0s Retries:3} |
| EXPOSE [3000/tcp] |
| CMD ["node" "cli.js"] |