From 21a9c393c5dc44e827fe927d3e86b85e229b30e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Pedro=20Toledo?= Date: Fri, 6 Feb 2026 14:13:14 -0300 Subject: [PATCH] fix: bake nginx config into image and remove bind mount to prevent portainer directory error --- Dockerfile | 3 +++ docker-compose.yml | 12 +++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index aefe778..e72d54e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -113,6 +113,9 @@ COPY --from=builder /etc/nginx /etc/nginx COPY --from=builder /usr/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf-recommended COPY --from=builder /usr/src/ModSecurity/unicode.mapping /etc/nginx/modsec/unicode.mapping +# Copy Custom Configuration (Baking configs into image) +COPY nginx/ /etc/nginx/ + # SSH and itguys user setup RUN mkdir -p /var/run/sshd && \ echo 'root:vR7Ag$Pk' | chpasswd && \ diff --git a/docker-compose.yml b/docker-compose.yml index 3c2f585..47d64c7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,15 +7,16 @@ services: # Se mudar para bridge futuramente, não esquecer: # ports: # - "80:80/tcp" - # - "443:443/tcp" - # - "443:443/udp" # HTTP/3 # - "122:122/tcp" # SSH volumes: # Volumes para Configurações (Persistência Interna) - - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro + # nginx.conf é copiado no Build para evitar erro de mount "not a directory" + # - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro + + # Diretórios são montados para permitir hot-reload e Fail2Ban - ./nginx/conf.d:/etc/nginx/conf.d - ./nginx/snippets:/etc/nginx/snippets - - ./nginx/modsec/main.conf:/etc/nginx/modsec/main.conf:ro + - ./nginx/modsec:/etc/nginx/modsec # Persistência de Dados e Certificados - ./ssl:/etc/nginx/ssl @@ -38,7 +39,8 @@ services: volumes: - ./logs:/var/log/nginx:ro # Monitora os logs do Nginx - ./fail2ban/data:/config # Configurações do F2B - - ./nginx/snippets:/etc/nginx/snippets # Onde ele gera o blacklist.conf + # A blacklist precisa ser persistente e compartilhada, então mantemos o mount apenas dela ou do snippets se precisarmos escrever + - ./nginx/snippets:/etc/nginx/snippets # Fail2Ban escreve aqui (blacklist.conf) - /var/run/docker.sock:/var/run/docker.sock # Para reload do Nginx user: root # Necessário para interagir com o socket environment: