diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 6513530..0000000 --- a/Dockerfile +++ /dev/null @@ -1,27 +0,0 @@ -# Multi-stage build para otimizar o tamanho da imagem - -# Stage 1: Build -FROM node:20-alpine AS builder - -WORKDIR /app - -COPY package*.json ./ -RUN npm install --legacy-peer-deps -COPY . . - -RUN npm run build - -# Stage 2: Production -FROM nginx:alpine - -RUN apk add --no-cache curl - -COPY --from=builder /app/dist /usr/share/nginx/html -COPY nginx.conf /etc/nginx/conf.d/default.conf - -EXPOSE 80 - -HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ - CMD curl -f http://localhost/ || exit 1 - -CMD ["nginx", "-g", "daemon off;"] diff --git a/docker-compose.swarm.yml b/docker-compose.swarm.yml deleted file mode 100644 index eaff060..0000000 --- a/docker-compose.swarm.yml +++ /dev/null @@ -1,61 +0,0 @@ -version: '3.8' - -services: - vendaweb-frontend: - image: vendaweb-react:latest - deploy: - replicas: 3 - update_config: - parallelism: 1 - delay: 10s - failure_action: rollback - order: start-first - rollback_config: - parallelism: 1 - delay: 5s - restart_policy: - condition: on-failure - delay: 5s - max_attempts: 3 - window: 120s - placement: - constraints: - - node.role == worker - preferences: - - spread: node.id - resources: - limits: - cpus: '0.5' - memory: 512M - reservations: - cpus: '0.25' - memory: 256M - labels: - - "traefik.enable=true" - - "traefik.http.routers.vendaweb.rule=Host(`venda.jurunense.com`)" - - "traefik.http.routers.vendaweb.entrypoints=websecure" - - "traefik.http.routers.vendaweb.tls.certresolver=letsencrypt" - - "traefik.http.services.vendaweb.loadbalancer.server.port=80" - - "traefik.http.services.vendaweb.loadbalancer.healthcheck.path=/health" - - "traefik.http.services.vendaweb.loadbalancer.healthcheck.interval=10s" - ports: - - target: 80 - published: 3035 - protocol: tcp - mode: ingress - networks: - - vendaweb-network - - traefik-public - healthcheck: - test: [ "CMD", "curl", "-f", "http://localhost/health" ] - interval: 30s - timeout: 10s - retries: 3 - start_period: 40s - -networks: - vendaweb-network: - driver: overlay - attachable: true - traefik-public: - external: true diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index d0eded0..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,29 +0,0 @@ -version: '3.8' - -services: - vendaweb-frontend: - build: - context: . - dockerfile: Dockerfile - image: vendaweb-react:latest - container_name: vendaweb-frontend - ports: - - "3035:80" - environment: - - NODE_ENV=production - restart: unless-stopped - networks: - - vendaweb-network - healthcheck: - test: [ "CMD", "curl", "-f", "http://localhost/health" ] - interval: 30s - timeout: 10s - retries: 3 - start_period: 40s - labels: - - "com.vendaweb.description=Plataforma Smart Jurunense - Frontend" - - "com.vendaweb.version=1.0.0" - -networks: - vendaweb-network: - driver: bridge diff --git a/nginx.conf b/nginx.conf deleted file mode 100644 index a8089b0..0000000 --- a/nginx.conf +++ /dev/null @@ -1,36 +0,0 @@ -server { - listen 80; - server_name _; - root /usr/share/nginx/html; - index index.html; - - # Gzip compression - gzip on; - gzip_vary on; - gzip_min_length 1024; - gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml+rss application/json application/javascript; - - # Security headers - add_header X-Frame-Options "SAMEORIGIN" always; - add_header X-Content-Type-Options "nosniff" always; - add_header X-XSS-Protection "1; mode=block" always; - add_header Referrer-Policy "no-referrer-when-downgrade" always; - - # Cache static assets - location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|woff|woff2|ttf|eot)$ { - expires 1y; - add_header Cache-Control "public, immutable"; - } - - # SPA fallback - todas as rotas retornam index.html - location / { - try_files $uri $uri/ /index.html; - } - - # Health check endpoint - location /health { - access_log off; - return 200 "healthy\n"; - add_header Content-Type text/plain; - } -}