2026-07-19 13:26:37 -05:00
|
|
|
# syntax=docker/dockerfile:1
|
|
|
|
|
FROM node:24.18.0-alpine@sha256:a0b9bf06e4e6193cf7a0f58816cc935ff8c2a908f81e6f1a95432d679c54fbfd AS deps
|
2021-08-25 19:16:09 -05:00
|
|
|
WORKDIR /usr/src/app
|
|
|
|
|
COPY package.json ./
|
|
|
|
|
COPY yarn.lock ./
|
2026-07-19 13:36:20 -05:00
|
|
|
RUN --mount=type=cache,id=littlelink-yarn-v1-cache-v2,target=/usr/local/share/.cache/yarn/v6,sharing=locked \
|
2026-07-19 13:26:37 -05:00
|
|
|
yarn install --frozen-lockfile --check-files --network-timeout 600000
|
|
|
|
|
|
|
|
|
|
FROM node:24.18.0-alpine@sha256:a0b9bf06e4e6193cf7a0f58816cc935ff8c2a908f81e6f1a95432d679c54fbfd AS node-build
|
|
|
|
|
WORKDIR /usr/src/app
|
|
|
|
|
COPY --from=deps /usr/src/app/node_modules ./node_modules
|
|
|
|
|
COPY package.json ./
|
|
|
|
|
COPY yarn.lock ./
|
2021-08-25 19:16:09 -05:00
|
|
|
COPY src ./src
|
|
|
|
|
COPY public ./public
|
2026-07-19 13:26:37 -05:00
|
|
|
COPY app ./app
|
|
|
|
|
COPY next.config.ts ./
|
|
|
|
|
COPY tsconfig.json ./
|
|
|
|
|
COPY tsconfig.server.json ./
|
|
|
|
|
COPY next-env.d.ts ./
|
|
|
|
|
COPY server.ts ./
|
|
|
|
|
ENV NEXT_TELEMETRY_DISABLED=1
|
2026-07-19 13:36:20 -05:00
|
|
|
RUN --mount=type=cache,id=littlelink-next-cache-v2,target=/usr/src/app/.next/cache,sharing=locked yarn build
|
2026-07-19 13:26:37 -05:00
|
|
|
RUN rm -rf \
|
|
|
|
|
.next/standalone/node_modules/@img/sharp-libvips-linux-* \
|
|
|
|
|
.next/standalone/node_modules/@img/sharp-linux-*
|
2021-08-25 19:16:09 -05:00
|
|
|
|
2026-07-19 13:26:37 -05:00
|
|
|
FROM node:24.18.0-alpine@sha256:a0b9bf06e4e6193cf7a0f58816cc935ff8c2a908f81e6f1a95432d679c54fbfd
|
2021-08-09 21:58:26 -05:00
|
|
|
WORKDIR /usr/src/app
|
2026-07-17 19:03:00 -05:00
|
|
|
ENV NODE_ENV=production
|
2026-07-19 13:26:37 -05:00
|
|
|
ENV HOSTNAME=0.0.0.0
|
|
|
|
|
ENV PORT=3000
|
|
|
|
|
ENV NEXT_TELEMETRY_DISABLED=1
|
|
|
|
|
COPY --from=node-build --chown=node:node /usr/src/app/.next/standalone ./
|
|
|
|
|
COPY --from=node-build --chown=node:node /usr/src/app/.next/static ./.next/static
|
|
|
|
|
COPY --from=node-build --chown=node:node /usr/src/app/public ./public
|
|
|
|
|
USER node
|
2021-08-09 21:58:26 -05:00
|
|
|
EXPOSE 3000
|
2026-01-17 15:34:00 -06:00
|
|
|
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
2026-07-26 17:58:48 -05:00
|
|
|
CMD wget --no-verbose --tries=1 --spider http://127.0.0.1:3000/healthcheck || exit 1
|
2026-07-19 13:26:37 -05:00
|
|
|
CMD [ "node", "server.js" ]
|