1- # ? -------------------------
2- # ? Base: Including OS Lib Dependencies and environment variable for build
3- # ? -------------------------
1+ # check=skip=SecretsUsedInArgOrEnv
42
5- FROM node:20-alpine AS base
63
7- ENV DOCKER_BUILD 1
8- ENV NEXT_PUBLIC_REALTIME_URL https://rtss.crackncode.org
9- ENV NEXT_PUBLIC_AWS_URL https://prginth01.sgp1.cdn.digitaloceanspaces.com
4+ FROM node:22-alpine AS builder
105
11- ENV GITHUB_ID mockvalue
12- ENV GITHUB_SECRET mockvalue
13- ENV GOOGLE_CLIENT_ID mockvalue
14- ENV GOOGLE_CLIENT_SECRET mockvalue
6+ ENV DOCKER_BUILD=1
7+ ENV NEXT_PUBLIC_REALTIME_URL=https://rtss.crackncode.org
8+ ENV NEXT_PUBLIC_AWS_URL=https://prginth01.sgp1.cdn.digitaloceanspaces.com
159
16- ENV BUCKET_NAME mockvalue
17- ENV BUCKET_KEY_ID mockvalue
18- ENV BUCKET_KEY_SECRET mockvalue
19- ENV BUCKET_ENDPOINT mockvalue
20- ENV BUCKET_REGION mockvalue
10+ ENV GITHUB_ID=mockvalue
11+ ENV GITHUB_SECRET=mockvalue
12+ ENV GOOGLE_CLIENT_ID=mockvalue
13+ ENV GOOGLE_CLIENT_SECRET=mockvalue
2114
22- # ? -------------------------
23- # ? Builder: Build production Next.js application to .next
24- # ? -------------------------
25-
26- FROM base AS builder
27-
28- RUN apk add python3 make gcc g++
15+ ENV BUCKET_NAME=mockvalue
16+ ENV BUCKET_KEY_ID=mockvalue
17+ ENV BUCKET_KEY_SECRET=mockvalue
18+ ENV BUCKET_ENDPOINT=mockvalue
19+ ENV BUCKET_REGION=mockvalue
2920
3021WORKDIR /app
3122
@@ -34,41 +25,36 @@ RUN corepack enable
3425COPY package.json pnpm-lock.yaml* ./
3526RUN pnpm install --frozen-lockfile
3627
37- COPY src ./src
38- COPY public ./public
39- COPY next.config.mjs postcss.config.js tailwind.config.js tsconfig.json ./
40-
4128COPY prisma ./prisma
4229RUN pnpm prisma generate
4330
31+ COPY next.config.mjs postcss.config.js tailwind.config.js tsconfig.json ./
32+
33+ COPY src ./src
34+ COPY public ./public
35+
4436ARG DATABASE_URL
45- ENV DATABASE_URL ${DATABASE_URL}
37+ ENV DATABASE_URL= ${DATABASE_URL}
4638
4739RUN pnpm build
4840
49- # ? -------------------------
50- # ? Runner: Final Image for Production
51- # ? -------------------------
52-
53- FROM base AS runner
41+ FROM node:22-alpine AS runner
5442
5543WORKDIR /app
5644
57- LABEL name "programming.in.th"
45+ LABEL name= "programming.in.th"
5846
5947USER node
60- ENV NODE_ENV production
48+ ENV NODE_ENV= production
6149
6250COPY package.json ./
6351
64- # Automatically leverage output traces to reduce image size
65- # https://nextjs.org/docs/advanced-features/output-file-tracing
6652COPY --chown=node:node --from=builder /app/.next/standalone ./
6753COPY --chown=node:node --from=builder /app/.next/static ./.next/static
6854COPY --chown=node:node --from=builder /app/public ./public
6955
70- ENV PORT 3000
71- ENV HOST 0.0.0.0
56+ ENV PORT= 3000
57+ ENV HOST= 0.0.0.0
7258
7359EXPOSE 3000
7460CMD ["node" , "server.js" ]
0 commit comments