Pārlūkot izejas kodu

build: improve dockerfile (#851)

Co-authored-by: MatriQi <matri@aifi.io>
Matri 1 gadu atpakaļ
vecāks
revīzija
5b06ded0b1
6 mainītis faili ar 5828 papildinājumiem un 19 dzēšanām
  1. 0 1
      sdks/nodejs-client/.gitignore
  2. 0 1
      web/.gitignore
  3. 31 15
      web/Dockerfile
  4. 1 2
      web/docker/entrypoint.sh
  5. 1 0
      web/next.config.js
  6. 5795 0
      web/yarn.lock

+ 0 - 1
sdks/nodejs-client/.gitignore

@@ -42,7 +42,6 @@ package-lock.json
 .pnp.cjs
 .pnp.loader.mjs
 .yarn/
-yarn.lock
 .yarnrc.yml
 
 # pmpm

+ 0 - 1
web/.gitignore

@@ -42,7 +42,6 @@ package-lock.json
 .pnp.cjs
 .pnp.loader.mjs
 .yarn/
-yarn.lock
 .yarnrc.yml
 
 # pmpm

+ 31 - 15
web/Dockerfile

@@ -1,32 +1,48 @@
-FROM node:18.17.0-alpine
+# base image
+FROM node:18.17.0-alpine AS base
 
+# install packages
+FROM base as packages
 LABEL maintainer="takatost@gmail.com"
 
+WORKDIR /app/web
+
+COPY package.json .
+COPY yarn.lock .
+
+RUN yarn --only=prod
+
+
+# build resources
+FROM base as builder
+WORKDIR /app/web
+COPY --from=packages /app/web/ .
+COPY . .
+
+RUN yarn build
+
+
+# production stage
+FROM base as production
+
 ENV NODE_ENV=production
 ENV EDITION SELF_HOSTED
 ENV DEPLOY_ENV PRODUCTION
 ENV CONSOLE_API_URL http://127.0.0.1:5001
 ENV APP_API_URL http://127.0.0.1:5001
+ENV PORT 3000
 
-EXPOSE 3000
 
 WORKDIR /app/web
+COPY --from=builder /app/web/.next/standalone ./
+COPY --from=builder /app/web/.next/static ./.next/static
 
-COPY package.json /app/web/package.json
-
-RUN npm install pm2 -g
 
-RUN npm install --only=prod
-
-COPY . /app/web/
-
-RUN npm run build
-
-COPY docker/pm2.json /app/web/pm2.json
-COPY docker/entrypoint.sh /entrypoint.sh
-RUN chmod +x /entrypoint.sh
+COPY docker/entrypoint.sh ./entrypoint.sh
+RUN chmod +x ./entrypoint.sh
 
 ARG COMMIT_SHA
 ENV COMMIT_SHA ${COMMIT_SHA}
 
-ENTRYPOINT ["/bin/sh", "/entrypoint.sh"]
+EXPOSE 3000
+ENTRYPOINT ["/bin/sh", "./entrypoint.sh"]

+ 1 - 2
web/docker/entrypoint.sh

@@ -19,5 +19,4 @@ fi
 
 export NEXT_PUBLIC_SENTRY_DSN=${SENTRY_DSN}
 
-/usr/local/bin/pm2 -v
-/usr/local/bin/pm2-runtime start /app/web/pm2.json
+node ./server.js

+ 1 - 0
web/next.config.js

@@ -38,6 +38,7 @@ const nextConfig = {
       },
     ]
   },
+  output: 'standalone',
 }
 
 module.exports = withMDX(nextConfig)

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 5795 - 0
web/yarn.lock