From d8e0c610ce64b3264cf6cdc952bf0cc76c417e0a Mon Sep 17 00:00:00 2001 From: robonen Date: Thu, 10 Nov 2022 19:00:05 +0700 Subject: [PATCH] feat(repo): dockerfile --- .dockerignore | 15 +++++++++++++++ .gitignore | 6 ++++-- Dockerfile | 23 +++++++++++++++++++++++ 3 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..2998e63 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,15 @@ +# Ignore everything +* + +# Allow files and directories +!src +!nuxt.config.ts +!tsconfig.json +!package.json +!package-lock.json + +# Ignore unnecessary files inside allowed directories +**/*~ +**/*.log +**/.DS_Store +**/Thumbs.db diff --git a/.gitignore b/.gitignore index d18fdf6..3376dfd 100644 --- a/.gitignore +++ b/.gitignore @@ -5,8 +5,10 @@ # Temporary files node_modules -tmp -*.log* +**/*~ +**/*.log +**/.DS_Store +**/Thumbs.db # Build src/.nuxt diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..bb38a27 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +ARG NODE_VERSION=18.12-slim + +# Stage 1: Build the application +FROM node:${NODE_VERSION} AS builder + +WORKDIR /build + +# See .dockerignore +COPY . . + +RUN npm ci && npm cache clean --force && ls -a + +# Stage 2: Run the application +FROM node:${NODE_VERSION} + +WORKDIR /app + +COPY --from=builder /build/src/.output . + +VOLUME /app +EXPOSE 3000 + +CMD ["node", "./server/index.mjs"]