buildDocker.groovy hardcoded harbor.35.238.248.203.nip.io as the push target, so the registry could not move without editing this shared library and every consumer moving in the same commit. It now reads config.harbor_registry, whose default lives in homelabPipeline.groovy beside harbor_project and every other key. The stage errors rather than defaulting when the value is missing. Carrying a second copy of the literal would leave two defaults free to disagree, and an unset value would otherwise build an image named "null/<project>/<repo>" — which docker accepts as a hostname and then fails to resolve, pointing nowhere near the cause. The dind pod no longer mounts the registry CA. That mount existed because the registry was a nip.io name, which no public CA will issue for, so cert-manager signed Harbor from a private CA; the node pool was told to trust it for pulls, but a push comes from dockerd inside the build pod, which has its own trust store. harbor.infra.deployshed.com carries a Let's Encrypt certificate that both already trust, so the mount, its volume and the whole arrangement go away rather than being repointed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LEsTefWWifp4ikvhHF5s6N
21 lines
816 B
Plaintext
21 lines
816 B
Plaintext
# Fallback only — see go-Dockerfile's header comment for the general
|
|
# rule, including the Harbor base-images sourcing (also applies here).
|
|
# Simplified from the real node-Dockerfile: no PBAC registry sync,
|
|
# no inline Sonar/coverage stage, no .npmrc-across-subdirectories dance.
|
|
# Assumes a standard `npm run build` + `npm start` repo. Switched from
|
|
# node:*-slim (Debian) to node:*-alpine for both stages — smaller, still
|
|
# keeps a shell for kubectl exec debugging (not distroless).
|
|
FROM harbor.infra.deployshed.com/base-images/node:${version}-alpine AS build
|
|
WORKDIR /app
|
|
COPY package*.json ./
|
|
RUN npm ci
|
|
COPY . .
|
|
RUN npm run build --if-present
|
|
|
|
FROM harbor.infra.deployshed.com/base-images/node:${version}-alpine
|
|
WORKDIR /app
|
|
COPY --from=build /app .
|
|
ENV NODE_ENV=production
|
|
EXPOSE 8080
|
|
CMD ["npm", "start"]
|