feat(docker): dockerize

This commit is contained in:
Pihkaal
2024-10-13 01:51:01 +02:00
parent 5ec42d48f8
commit 4f8187b66a
3 changed files with 42 additions and 0 deletions

3
.dockerignore Normal file
View File

@@ -0,0 +1,3 @@
node_modules
.nuxt
.output

23
Dockerfile Normal file
View File

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

16
docker-compose.yml Normal file
View File

@@ -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