diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..a21f178 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +node_modules +dist +.git diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a369771 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,12 @@ +# Stage 1: Build +FROM node:22-alpine AS build +WORKDIR /app +COPY package*.json ./ +RUN npm ci +COPY . . +RUN npm run build + +# Stage 2: Serve +FROM nginx:alpine +COPY --from=build /app/dist /usr/share/nginx/html +# Use default nginx config (serves /usr/share/nginx/html on port 80) diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..fbc224e --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,16 @@ +services: + aquarium: + build: . + container_name: aquarium + restart: unless-stopped + networks: + - dev_net + labels: + - "traefik.enable=true" + - "traefik.http.routers.aquarium.rule=Host(`aqua.dev.kkhost.pl`)" + - "traefik.http.routers.aquarium.entrypoints=web" + - "traefik.http.services.aquarium.loadbalancer.server.port=80" + +networks: + dev_net: + external: true