Aggiungi script di debug e aggiornamenti alla configurazione per il deploy
All checks were successful
Deploy / deploy (push) Successful in 19s
All checks were successful
Deploy / deploy (push) Successful in 19s
This commit is contained in:
@@ -1,7 +1,8 @@
|
|||||||
{
|
{
|
||||||
"permissions": {
|
"permissions": {
|
||||||
"allow": [
|
"allow": [
|
||||||
"Bash(npm install)"
|
"Bash(npm install)",
|
||||||
|
"Bash(npm run build:*)"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,11 @@ jobs:
|
|||||||
- name: Checkout del codice
|
- name: Checkout del codice
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Crea file .env
|
||||||
|
run: |
|
||||||
|
echo "DOMAIN=${{ secrets.DOMAIN }}" > .env
|
||||||
|
cat .env
|
||||||
|
|
||||||
- name: Deploy
|
- name: Deploy
|
||||||
run: |
|
run: |
|
||||||
docker compose down --remove-orphans
|
docker compose down --remove-orphans
|
||||||
|
|||||||
238
TROUBLESHOOTING.md
Normal file
238
TROUBLESHOOTING.md
Normal file
@@ -0,0 +1,238 @@
|
|||||||
|
# Troubleshooting 404 Error
|
||||||
|
|
||||||
|
Se ottieni un errore 404 visitando il sito, segui questi passaggi:
|
||||||
|
|
||||||
|
## 1. Esegui lo Script di Debug
|
||||||
|
|
||||||
|
Sul server, nella directory del progetto:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
chmod +x debug-server.sh
|
||||||
|
./debug-server.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Questo script ti mostrerà:
|
||||||
|
- Stato del container
|
||||||
|
- Logs
|
||||||
|
- File presenti in nginx
|
||||||
|
- Configurazione rete
|
||||||
|
- Labels Traefik
|
||||||
|
|
||||||
|
## 2. Problemi Comuni e Soluzioni
|
||||||
|
|
||||||
|
### ❌ Container non in esecuzione
|
||||||
|
|
||||||
|
**Verifica:**
|
||||||
|
```bash
|
||||||
|
docker ps -a | grep vue-demo-app
|
||||||
|
```
|
||||||
|
|
||||||
|
**Soluzione:**
|
||||||
|
```bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### ❌ File mancanti in /usr/share/nginx/html/
|
||||||
|
|
||||||
|
**Verifica:**
|
||||||
|
```bash
|
||||||
|
docker exec vue-demo-app ls -la /usr/share/nginx/html/
|
||||||
|
```
|
||||||
|
|
||||||
|
**Dovrebbe mostrare:**
|
||||||
|
- index.html
|
||||||
|
- assets/ (directory)
|
||||||
|
|
||||||
|
**Soluzione se i file mancano:**
|
||||||
|
```bash
|
||||||
|
# Rebuild completo
|
||||||
|
docker-compose down
|
||||||
|
docker-compose build --no-cache
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### ❌ Rete web_proxy non esiste
|
||||||
|
|
||||||
|
**Verifica:**
|
||||||
|
```bash
|
||||||
|
docker network ls | grep web_proxy
|
||||||
|
```
|
||||||
|
|
||||||
|
**Soluzione:**
|
||||||
|
```bash
|
||||||
|
docker network create web_proxy
|
||||||
|
docker-compose restart
|
||||||
|
```
|
||||||
|
|
||||||
|
### ❌ Container non sulla rete corretta
|
||||||
|
|
||||||
|
**Verifica:**
|
||||||
|
```bash
|
||||||
|
docker inspect vue-demo-app --format='{{range $key, $value := .NetworkSettings.Networks}}{{$key}}{{"\n"}}{{end}}'
|
||||||
|
```
|
||||||
|
|
||||||
|
**Soluzione:**
|
||||||
|
```bash
|
||||||
|
docker network connect web_proxy vue-demo-app
|
||||||
|
docker-compose restart
|
||||||
|
```
|
||||||
|
|
||||||
|
### ❌ Variabile DOMAIN non configurata
|
||||||
|
|
||||||
|
**Verifica:**
|
||||||
|
```bash
|
||||||
|
cat .env
|
||||||
|
```
|
||||||
|
|
||||||
|
**Soluzione:**
|
||||||
|
```bash
|
||||||
|
echo "DOMAIN=tuo-dominio.com" > .env
|
||||||
|
docker-compose down
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### ❌ Traefik non trova il container
|
||||||
|
|
||||||
|
**Verifica labels:**
|
||||||
|
```bash
|
||||||
|
docker inspect vue-demo-app | grep -A 20 Labels
|
||||||
|
```
|
||||||
|
|
||||||
|
**Verifica logs Traefik:**
|
||||||
|
```bash
|
||||||
|
docker logs traefik | grep vue-demo
|
||||||
|
```
|
||||||
|
|
||||||
|
**Possibili problemi:**
|
||||||
|
1. Dominio nel .env non corrisponde al DNS
|
||||||
|
2. Traefik non è sulla stessa rete del container
|
||||||
|
3. Labels Traefik non corretti
|
||||||
|
|
||||||
|
**Soluzione:**
|
||||||
|
```bash
|
||||||
|
# Ricrea container con labels corretti
|
||||||
|
docker-compose down
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
# Verifica che entrambi siano sulla rete web_proxy
|
||||||
|
docker network inspect web_proxy
|
||||||
|
```
|
||||||
|
|
||||||
|
### ❌ Nginx restituisce 404
|
||||||
|
|
||||||
|
**Test diretto:**
|
||||||
|
```bash
|
||||||
|
# Ottieni IP del container
|
||||||
|
CONTAINER_IP=$(docker inspect vue-demo-app --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}')
|
||||||
|
|
||||||
|
# Test diretto (dall'interno del server)
|
||||||
|
curl http://$CONTAINER_IP
|
||||||
|
```
|
||||||
|
|
||||||
|
**Se questo funziona ma il dominio no, il problema è Traefik.**
|
||||||
|
**Se anche questo restituisce 404, il problema è nginx/build.**
|
||||||
|
|
||||||
|
**Soluzione problemi nginx:**
|
||||||
|
```bash
|
||||||
|
# Verifica file
|
||||||
|
docker exec vue-demo-app cat /usr/share/nginx/html/index.html
|
||||||
|
|
||||||
|
# Verifica configurazione nginx
|
||||||
|
docker exec vue-demo-app nginx -t
|
||||||
|
|
||||||
|
# Rebuild se necessario
|
||||||
|
docker-compose build --no-cache
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
## 3. Verifica Configurazione Traefik
|
||||||
|
|
||||||
|
Assicurati che Traefik sia configurato correttamente:
|
||||||
|
|
||||||
|
### Verifica entrypoints:
|
||||||
|
```bash
|
||||||
|
docker inspect traefik | grep -i entrypoint
|
||||||
|
```
|
||||||
|
|
||||||
|
Dovrebbe avere:
|
||||||
|
- `web` su porta 80
|
||||||
|
- `websecure` su porta 443
|
||||||
|
|
||||||
|
### Verifica cert resolver:
|
||||||
|
```bash
|
||||||
|
docker inspect traefik | grep -i letsencrypt
|
||||||
|
```
|
||||||
|
|
||||||
|
Dovrebbe avere il resolver `letsencrypt` configurato.
|
||||||
|
|
||||||
|
### Verifica rete:
|
||||||
|
```bash
|
||||||
|
docker network inspect web_proxy
|
||||||
|
```
|
||||||
|
|
||||||
|
Traefik e vue-demo-app devono essere entrambi su questa rete.
|
||||||
|
|
||||||
|
## 4. Test Manuale Completo
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Verifica DNS
|
||||||
|
nslookup tuo-dominio.com
|
||||||
|
|
||||||
|
# 2. Verifica rete
|
||||||
|
docker network inspect web_proxy
|
||||||
|
|
||||||
|
# 3. Verifica container
|
||||||
|
docker ps | grep vue-demo
|
||||||
|
|
||||||
|
# 4. Test interno
|
||||||
|
docker exec vue-demo-app wget -O - http://localhost
|
||||||
|
|
||||||
|
# 5. Verifica logs
|
||||||
|
docker logs vue-demo-app
|
||||||
|
docker logs traefik | grep vue-demo
|
||||||
|
|
||||||
|
# 6. Test dal server
|
||||||
|
curl -H "Host: tuo-dominio.com" http://localhost
|
||||||
|
|
||||||
|
# 7. Test esterno
|
||||||
|
curl https://tuo-dominio.com
|
||||||
|
```
|
||||||
|
|
||||||
|
## 5. Rebuild Completo (Last Resort)
|
||||||
|
|
||||||
|
Se nulla funziona:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Stop tutto
|
||||||
|
docker-compose down
|
||||||
|
|
||||||
|
# Rimuovi immagini vecchie
|
||||||
|
docker rmi vue-demo:latest
|
||||||
|
docker system prune -f
|
||||||
|
|
||||||
|
# Verifica .env
|
||||||
|
cat .env
|
||||||
|
|
||||||
|
# Rebuild completo
|
||||||
|
docker-compose build --no-cache
|
||||||
|
|
||||||
|
# Verifica rete
|
||||||
|
docker network ls | grep web_proxy || docker network create web_proxy
|
||||||
|
|
||||||
|
# Avvia
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
# Controlla logs
|
||||||
|
docker-compose logs -f
|
||||||
|
```
|
||||||
|
|
||||||
|
## 6. Contatta Supporto
|
||||||
|
|
||||||
|
Se dopo tutti questi passaggi il problema persiste, raccogli le seguenti informazioni:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./debug-server.sh > debug-output.txt
|
||||||
|
docker-compose logs > docker-logs.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
E invia i file di output per ulteriore analisi.
|
||||||
72
debug-server.sh
Normal file
72
debug-server.sh
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Script di debug per diagnosticare problemi di deploy
|
||||||
|
|
||||||
|
echo "======================================"
|
||||||
|
echo " DIAGNOSTICA DEPLOY VUE APP"
|
||||||
|
echo "======================================"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 1. Verifica container in esecuzione
|
||||||
|
echo "1. Container in esecuzione:"
|
||||||
|
docker ps | grep vue-demo-app
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "✅ Container trovato"
|
||||||
|
else
|
||||||
|
echo "❌ Container non trovato!"
|
||||||
|
fi
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 2. Verifica logs container
|
||||||
|
echo "2. Ultimi logs del container:"
|
||||||
|
docker logs vue-demo-app --tail 20
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 3. Verifica rete
|
||||||
|
echo "3. Reti del container:"
|
||||||
|
docker inspect vue-demo-app --format='{{range $key, $value := .NetworkSettings.Networks}}{{$key}}: {{$value.IPAddress}}{{"\n"}}{{end}}'
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 4. Verifica file dentro container
|
||||||
|
echo "4. File nella directory nginx:"
|
||||||
|
docker exec vue-demo-app ls -la /usr/share/nginx/html/
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 5. Test nginx interno
|
||||||
|
echo "5. Test richiesta HTTP interna al container:"
|
||||||
|
docker exec vue-demo-app wget -O - http://localhost:80 2>/dev/null | head -20
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 6. Verifica configurazione nginx
|
||||||
|
echo "6. Configurazione nginx:"
|
||||||
|
docker exec vue-demo-app cat /etc/nginx/conf.d/default.conf
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 7. Verifica variabile DOMAIN
|
||||||
|
echo "7. Variabile DOMAIN nel .env:"
|
||||||
|
cat .env 2>/dev/null || echo "❌ File .env non trovato!"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 8. Verifica labels Traefik
|
||||||
|
echo "8. Labels Traefik del container:"
|
||||||
|
docker inspect vue-demo-app --format='{{range $key, $value := .Config.Labels}}{{$key}}: {{$value}}{{"\n"}}{{end}}' | grep traefik
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 9. Verifica rete Traefik
|
||||||
|
echo "9. Verifica rete web_proxy:"
|
||||||
|
docker network inspect web_proxy --format='{{range .Containers}}{{.Name}}: {{.IPv4Address}}{{"\n"}}{{end}}' 2>/dev/null || echo "❌ Rete web_proxy non trovata!"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 10. Stato Traefik
|
||||||
|
echo "10. Container Traefik:"
|
||||||
|
docker ps | grep traefik
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "✅ Traefik in esecuzione"
|
||||||
|
else
|
||||||
|
echo "❌ Traefik non trovato!"
|
||||||
|
fi
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "======================================"
|
||||||
|
echo " DIAGNOSTICA COMPLETATA"
|
||||||
|
echo "======================================"
|
||||||
24
quick-debug.sh
Normal file
24
quick-debug.sh
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "=== QUICK DEBUG ==="
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "1. Logs del container:"
|
||||||
|
docker logs vue-demo-app --tail 50
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "2. Processi in esecuzione nel container:"
|
||||||
|
docker exec vue-demo-app ps aux
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "3. File presenti in nginx:"
|
||||||
|
docker exec vue-demo-app ls -la /usr/share/nginx/html/
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "4. Porta 80 in ascolto?"
|
||||||
|
docker exec vue-demo-app netstat -tlnp 2>/dev/null || docker exec vue-demo-app ss -tlnp 2>/dev/null || echo "netstat/ss non disponibile"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "5. Test configurazione nginx:"
|
||||||
|
docker exec vue-demo-app nginx -t
|
||||||
|
echo ""
|
||||||
Reference in New Issue
Block a user