From fa2b9df45b9682fbbd9392ce3516b2be14ae122d Mon Sep 17 00:00:00 2001 From: LeoMortari Date: Mon, 3 Nov 2025 00:51:14 -0300 Subject: [PATCH] Adiciona docker e nginx --- .dockerignore | 6 ++++++ Dockerfile | 14 ++++++++++++++ docker-compose.yml | 22 ++++++++++++++++++++++ nginx.conf | 20 ++++++++++++++++++++ 4 files changed, 62 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 docker-compose.yml create mode 100644 nginx.conf diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..fab637e --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +node_modules +dist +.git +.gitignore +Dockerfile +docker-compose.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4dc83b5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,14 @@ +FROM node:20-alpine AS build +WORKDIR /app +COPY package*.json ./ +RUN npm ci --omit=dev=false +COPY . . + +ARG BASE=/ +ENV VITE_BASE_PATH=$BASE +RUN npm run build + +FROM nginx:1.27-alpine +COPY nginx.conf /etc/nginx/conf.d/default.conf +COPY --from=build /app/dist /usr/share/nginx/html +EXPOSE 80 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..65a33da --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,22 @@ +services: + web: + build: + context: . + dockerfile: Dockerfile + args: + BASE: ${BASE:-/} + image: ${IMAGE_NAME:-vite-nginx:latest} + container_name: clipperia + restart: unless-stopped + networks: + - dokploy-network + labels: + - traefik.enable=true + - traefik.http.routers.vite.rule=Host("clipperia.com.br") + - traefik.http.routers.vite.entrypoints=websecure + - traefik.http.routers.vite.tls.certresolver=letsencrypt + - traefik.http.services.vite.loadbalancer.server.port=80 + +networks: + dokploy-network: + external: true diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..7ec555e --- /dev/null +++ b/nginx.conf @@ -0,0 +1,20 @@ +server { + listen 80; + server_name _; + + absolute_redirect off; + port_in_redirect off; + + root /usr/share/nginx/html; + index index.html; + + location ~* \.(?:js|mjs|css|png|jpg|jpeg|gif|svg|ico|woff2?)$ { + expires 7d; + add_header Cache-Control "public, max-age=604800, immutable"; + try_files $uri =404; + } + + location / { + try_files $uri $uri/ /index.html; + } +}