Fix jwt-token

This commit is contained in:
2025-08-16 19:51:04 +02:00
parent 0d386840e3
commit 52fd44cb0f
6 changed files with 210 additions and 2 deletions

View File

@@ -11,7 +11,7 @@ WORKDIR /app
COPY package*.json ./
# Install dependencies (including dev dependencies for build)
RUN npm ci
RUN npm install --production=false
# Copy source code
COPY . .

View File

@@ -41,6 +41,21 @@ docker-compose ps
- **Database**: localhost:5432
- **Redis**: localhost:6379
### Testing Docker Builds
Before running the full docker-compose setup, you can test individual container builds:
```bash
# Test all builds
./test-docker-builds.sh # Linux/Mac
test-docker-builds.bat # Windows
# Test individual builds
docker build -t test-backend ./server
docker build -t test-frontend ./client
docker build -f docker/simulator/Dockerfile -t test-simulator .
```
## Service Architecture
```
@@ -220,9 +235,15 @@ docker-compose up -d
#### 2. Frontend Build Issues
```bash
# If npm ci fails (missing package-lock.json)
# The Dockerfile has been updated to use npm install instead
# Rebuild frontend
docker-compose build --no-cache frontend
# Test frontend build individually
docker build -t test-frontend ./client
# Check build logs
docker-compose logs frontend
```

View File

@@ -0,0 +1,88 @@
# Docker Troubleshooting Guide
## Common Docker Build Issues
### 1. Frontend npm ci Error
**Error**: `npm ci` fails with "missing package-lock.json"
**Solution**: The Dockerfile has been updated to use `npm install` instead
```bash
docker build --no-cache -t test-frontend ./client
```
### 2. Backend Build Dependencies
**Error**: Native dependencies compilation fails
**Solution**: The backend includes all necessary build tools
```bash
docker build --no-cache -t test-backend ./server
```
### 3. Missing nginx.conf
**Error**: `nginx.conf` not found during frontend build
**Solution**: The nginx configuration is now included in the client directory
```bash
# Check if nginx.conf exists
ls client/nginx.conf
```
### 4. Docker Compose Network Issues
**Error**: Services cannot communicate
**Solution**: Use the simplified docker-compose file
```bash
docker-compose -f docker-compose.simple.yml up -d
```
## Build Testing
Test builds individually before running docker-compose:
```bash
# Linux/Mac
chmod +x test-docker-builds.sh
./test-docker-builds.sh
# Windows
test-docker-builds.bat
```
## Quick Fixes
### Reset Everything
```bash
docker-compose down -v
docker system prune -f
docker-compose build --no-cache
docker-compose up -d
```
### Check Service Logs
```bash
docker-compose logs backend
docker-compose logs frontend
docker-compose logs postgres
```
### Manual Container Testing
```bash
# Test backend
docker run -it --rm -p 3001:3001 drone-backend
# Test frontend
docker run -it --rm -p 3000:80 drone-frontend
```
## Performance Issues
### Increase Docker Resources
- Increase Docker Desktop memory to 4GB+
- Increase Docker Desktop CPU to 4+ cores
- Enable Docker BuildKit for faster builds
### Build Optimization
```bash
# Use BuildKit for faster builds
export DOCKER_BUILDKIT=1
docker-compose build
# Parallel builds
docker-compose build --parallel
```

View File

@@ -16,7 +16,7 @@ WORKDIR /app
COPY package*.json ./
# Install dependencies
RUN npm ci --only=production && \
RUN npm install --only=production && \
npm cache clean --force
# Copy application code

38
test-docker-builds.bat Normal file
View File

@@ -0,0 +1,38 @@
@echo off
setlocal
echo 🐳 Testing Docker Builds
echo =======================
echo [INFO] Building backend container...
docker build -t drone-backend ./server
if %errorlevel% neq 0 (
echo [ERROR] Backend build failed
exit /b 1
)
echo [SUCCESS] Backend build completed
echo [INFO] Building frontend container...
docker build -t drone-frontend ./client
if %errorlevel% neq 0 (
echo [ERROR] Frontend build failed
exit /b 1
)
echo [SUCCESS] Frontend build completed
echo [INFO] Building simulator container...
docker build -f docker/simulator/Dockerfile -t drone-simulator .
if %errorlevel% neq 0 (
echo [ERROR] Simulator build failed
exit /b 1
)
echo [SUCCESS] Simulator build completed
echo [SUCCESS] All builds completed successfully!
echo.
echo You can now run:
echo docker-compose up -d
echo or
echo docker-compose -f docker-compose.simple.yml up -d
pause

61
test-docker-builds.sh Normal file
View File

@@ -0,0 +1,61 @@
#!/bin/bash
# Docker Build Test Script
# Tests building individual containers before running docker-compose
set -e
echo "🐳 Testing Docker Builds"
echo "======================="
# Colors
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m'
print_success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
print_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
print_info() {
echo -e "${YELLOW}[INFO]${NC} $1"
}
# Test backend build
print_info "Building backend container..."
if docker build -t drone-backend ./server; then
print_success "Backend build completed"
else
print_error "Backend build failed"
exit 1
fi
# Test frontend build
print_info "Building frontend container..."
if docker build -t drone-frontend ./client; then
print_success "Frontend build completed"
else
print_error "Frontend build failed"
exit 1
fi
# Test simulator build
print_info "Building simulator container..."
if docker build -f docker/simulator/Dockerfile -t drone-simulator .; then
print_success "Simulator build completed"
else
print_error "Simulator build failed"
exit 1
fi
print_success "All builds completed successfully!"
echo ""
echo "You can now run:"
echo " docker-compose up -d"
echo " or"
echo " docker-compose -f docker-compose.simple.yml up -d"