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"]