mirror of
https://github.com/frappe/frappe_docker.git
synced 2026-06-26 00:55:10 +00:00
fix: Keep node_modules for runtime dependencies and add troubleshooting guide
Critical fix: - Dockerfile: Do not delete node_modules folders (socket.io needed at runtime) - Only remove .git folders and Python cache - Preserve all npm packages for WebSocket functionality New documentation: - dokploy/TROUBLESHOOTING.md: Common issues and solutions * WebSocket host not found * socket.io module not found * Frontend restart loop * Site not found errors This fixes: - Frontend restart loop - WebSocket container crashes - socket.io MODULE_NOT_FOUND errors WebSocket requires socket.io, redis, socket.io-redis packages at runtime. These must NOT be deleted in Dockerfile cleanup.
This commit is contained in:
parent
93783dbc78
commit
6485b93da7
2 changed files with 179 additions and 3 deletions
|
|
@ -144,12 +144,11 @@ RUN cd /home/frappe/frappe-bench && \
|
||||||
bench get-app payments https://github.com/frappe/payments && \
|
bench get-app payments https://github.com/frappe/payments && \
|
||||||
find apps/payments -name "*.pyc" -delete && \
|
find apps/payments -name "*.pyc" -delete && \
|
||||||
find apps/payments -name "__pycache__" -type d -exec rm -rf {} + 2>/dev/null || true && \
|
find apps/payments -name "__pycache__" -type d -exec rm -rf {} + 2>/dev/null || true && \
|
||||||
# Final cleanup
|
# Final cleanup (keep node_modules for runtime dependencies like socket.io)
|
||||||
echo "{}" > sites/common_site_config.json && \
|
echo "{}" > sites/common_site_config.json && \
|
||||||
find apps -mindepth 1 -path "*/.git" | xargs rm -fr && \
|
find apps -mindepth 1 -path "*/.git" -type d -exec rm -rf {} + 2>/dev/null || true && \
|
||||||
find apps -name "*.pyc" -delete && \
|
find apps -name "*.pyc" -delete && \
|
||||||
find apps -name "__pycache__" -type d -exec rm -rf {} + 2>/dev/null || true && \
|
find apps -name "__pycache__" -type d -exec rm -rf {} + 2>/dev/null || true && \
|
||||||
find apps -name "node_modules" -type d -exec rm -rf {} + 2>/dev/null || true && \
|
|
||||||
find apps -name ".git" -type d -exec rm -rf {} + 2>/dev/null || true
|
find apps -name ".git" -type d -exec rm -rf {} + 2>/dev/null || true
|
||||||
|
|
||||||
FROM base AS erpnext-complete
|
FROM base AS erpnext-complete
|
||||||
|
|
|
||||||
177
dokploy/TROUBLESHOOTING.md
Normal file
177
dokploy/TROUBLESHOOTING.md
Normal file
|
|
@ -0,0 +1,177 @@
|
||||||
|
# Sorun Giderme Kılavuzu
|
||||||
|
|
||||||
|
## 🐛 Yaygın Sorunlar ve Çözümler
|
||||||
|
|
||||||
|
### Frontend: "websocket:9000 host not found"
|
||||||
|
|
||||||
|
**Hata**:
|
||||||
|
```
|
||||||
|
[emerg] host not found in upstream "websocket:9000"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Sebep**: WebSocket container başlamadı veya başlatılamadı
|
||||||
|
|
||||||
|
**Çözüm 1**: WebSocket container loglarını kontrol edin
|
||||||
|
```bash
|
||||||
|
docker-compose logs websocket
|
||||||
|
|
||||||
|
# Eğer "socket.io module not found" hatası varsa:
|
||||||
|
# Image'i yeniden build edin (node_modules kaldırılmış olabilir)
|
||||||
|
docker-compose build --no-cache
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
**Çözüm 2**: Container'ları sırayla başlatın
|
||||||
|
```bash
|
||||||
|
# Tüm container'ları durdurun
|
||||||
|
docker-compose down
|
||||||
|
|
||||||
|
# create-site container'ını çalıştırın
|
||||||
|
docker-compose up create-site
|
||||||
|
|
||||||
|
# Sonra diğerlerini başlatın
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### WebSocket: "Cannot find module 'socket.io'"
|
||||||
|
|
||||||
|
**Hata**:
|
||||||
|
```
|
||||||
|
Error: Cannot find module 'socket.io'
|
||||||
|
```
|
||||||
|
|
||||||
|
**Sebep**: Node.js dependencies eksik
|
||||||
|
|
||||||
|
**Çözüm**: Container'a girin ve socket.io'yu yeniden yükleyin
|
||||||
|
```bash
|
||||||
|
# Backend container'a girin
|
||||||
|
docker exec -it <backend-container> bash
|
||||||
|
|
||||||
|
# Frappe klasörüne gidin
|
||||||
|
cd /home/frappe/frappe-bench/apps/frappe
|
||||||
|
|
||||||
|
# Socket.io'yu yükleyin
|
||||||
|
npm install socket.io redis socket.io-redis
|
||||||
|
|
||||||
|
# Restart
|
||||||
|
exit
|
||||||
|
docker-compose restart websocket frontend
|
||||||
|
```
|
||||||
|
|
||||||
|
**Kalıcı Çözüm**: Image'i yeniden build edin
|
||||||
|
```bash
|
||||||
|
# Dokploy'da
|
||||||
|
1. Service → Settings → Redeploy
|
||||||
|
2. Build cache temizlenecek
|
||||||
|
3. Dependencies doğru yüklenecek
|
||||||
|
```
|
||||||
|
|
||||||
|
### Site Açılmıyor
|
||||||
|
|
||||||
|
**Kontroller**:
|
||||||
|
```bash
|
||||||
|
# 1. Backend çalışıyor mu?
|
||||||
|
docker-compose ps backend
|
||||||
|
|
||||||
|
# 2. Backend logları
|
||||||
|
docker-compose logs backend
|
||||||
|
|
||||||
|
# 3. create-site başarılı mı?
|
||||||
|
docker-compose logs create-site
|
||||||
|
|
||||||
|
# 4. Database bağlantısı
|
||||||
|
docker-compose exec backend wait-for-it mariadb:3306
|
||||||
|
```
|
||||||
|
|
||||||
|
### "Site not found"
|
||||||
|
|
||||||
|
**Çözüm**:
|
||||||
|
```bash
|
||||||
|
# Site listesini kontrol edin
|
||||||
|
docker exec <backend> bench --site all list-apps
|
||||||
|
|
||||||
|
# Site yoksa yeniden oluşturun
|
||||||
|
docker-compose up create-site
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🔄 Genel Çözümler
|
||||||
|
|
||||||
|
### Temiz Başlangıç
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Tüm container'ları silin
|
||||||
|
docker-compose down -v
|
||||||
|
|
||||||
|
# Yeniden başlatın
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
# Logları izleyin
|
||||||
|
docker-compose logs -f
|
||||||
|
```
|
||||||
|
|
||||||
|
### Image Yeniden Build
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Local'de
|
||||||
|
docker-compose build --no-cache
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
# Dokploy'da
|
||||||
|
Service → Settings → Redeploy (Build Cache: No Cache)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Container Sıralaması
|
||||||
|
|
||||||
|
Container'lar doğru sırayla başlamalı:
|
||||||
|
```
|
||||||
|
1. MariaDB, Redis → healthy
|
||||||
|
2. Configurator → complete
|
||||||
|
3. create-site → complete
|
||||||
|
4. backend → healthy
|
||||||
|
5. websocket → healthy
|
||||||
|
6. frontend → healthy
|
||||||
|
7. workers, scheduler → running
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📊 Health Check
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Tüm container'lar healthy mi?
|
||||||
|
docker-compose ps
|
||||||
|
|
||||||
|
# Beklenen çıktı:
|
||||||
|
NAME STATUS
|
||||||
|
mariadb Up (healthy)
|
||||||
|
redis-cache Up (healthy)
|
||||||
|
redis-queue Up (healthy)
|
||||||
|
backend Up (healthy)
|
||||||
|
websocket Up
|
||||||
|
frontend Up (healthy)
|
||||||
|
queue-short Up
|
||||||
|
queue-long Up
|
||||||
|
scheduler Up
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🔍 Debug Mode
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Backend container'a girin
|
||||||
|
docker exec -it <backend> bash
|
||||||
|
|
||||||
|
# Bench console
|
||||||
|
bench console
|
||||||
|
|
||||||
|
# Python'da:
|
||||||
|
import frappe
|
||||||
|
frappe.init(site='<site-name>')
|
||||||
|
frappe.connect()
|
||||||
|
|
||||||
|
# Test
|
||||||
|
frappe.db.get_list('User', limit=1)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Common Issues**: websocket, site not found, dependencies
|
||||||
|
**Solution**: Rebuild image, restart containers, check logs
|
||||||
|
|
||||||
Loading…
Reference in a new issue