From 4f8187b66a898430971a004523e86a963935f729 Mon Sep 17 00:00:00 2001 From: Pihkaal Date: Sun, 13 Oct 2024 01:51:01 +0200 Subject: [PATCH] feat(docker): dockerize --- .dockerignore | 3 +++ Dockerfile | 23 +++++++++++++++++++++++ docker-compose.yml | 16 ++++++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..d86f467 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +node_modules +.nuxt +.output diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..eb197c5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +FROM node:20-slim AS base + +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" + +RUN corepack enable + +COPY . /app +WORKDIR /app + +FROM base AS prod-deps +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile + +FROM base AS build +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile +RUN pnpm run build + +FROM base + +COPY --from=build /app/.output /app/.output + +EXPOSE 3000 +CMD ["node", ".output/server/index.mjs"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..999838e --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,16 @@ +services: + simple-qr: + build: . + networks: + - web + labels: + - "traefik.enable=true" + - "traefik.http.routers.simple-qr.rule=Host(`simple-qr.com`)" + - "traefik.http.routers.simple-qr.service=simple-qr" + - "traefik.http.services.simple-qr.loadbalancer.server.port=3000" + - "traefik.http.routers.simple-qr.tls=true" + - "traefik.http.routers.simple-qr.tls.certResolver=myresolver" + +networks: + web: + external: true