diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2925e60 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +FROM node:20-alpine AS builder +WORKDIR /app +RUN corepack enable && corepack prepare pnpm@latest --activate +COPY package.json pnpm-lock.yaml ./ +RUN pnpm install --frozen-lockfile +COPY . . +RUN pnpm build + +FROM nginx:alpine +COPY --from=builder /app/out /usr/share/nginx/html +EXPOSE 80 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..cec6178 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,29 @@ +services: + myc0punkz: + build: . + restart: unless-stopped + labels: + - "traefik.enable=true" + - "traefik.http.routers.myc0punkz.rule=Host(`myc0punkz.xyz`) || Host(`www.myc0punkz.xyz`)" + - "traefik.http.services.myc0punkz.loadbalancer.server.port=80" + networks: + - traefik-public + security_opt: + - no-new-privileges:true + cap_drop: + - ALL + cap_add: + - NET_BIND_SERVICE + - CHOWN + - SETGID + - SETUID + - DAC_OVERRIDE + read_only: true + tmpfs: + - /tmp + - /var/cache/nginx + - /var/run + +networks: + traefik-public: + external: true