Files
minio-webui/docker-compose.dev.yml
T
paul 7bcee648ad fix: Resolve Docker permission issues in development environment
- Create dedicated Dockerfile.backend.dev for development with proper permissions
- Set user UID/GID to 1000 (common for development systems)
- Create logs and temp directories in Dockerfile before switching user
- Use named volumes for logs, temp, and node_modules to maintain permissions
- Mount only source files instead of entire backend directory
- Remove complex entrypoint script in favor of simple CMD
- Add LOG_DIR and TEMP_DIR environment variables

This fixes the "Permission denied" errors when creating directories in Docker.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-23 14:32:14 +02:00

84 lines
1.9 KiB
YAML

version: '3.8'
# Development docker-compose file
# This configuration runs frontend and backend on custom ports without SSL/nginx proxy
# Usage: docker compose -f docker-compose.dev.yml up
services:
backend:
build:
context: ./backend
dockerfile: ../docker/Dockerfile.backend.dev
container_name: minio-webui-backend-dev
restart: unless-stopped
environment:
NODE_ENV: development
PORT: 7510
LOG_DIR: /app/logs
TEMP_DIR: /app/temp
env_file:
- .env
ports:
- "7510:7510"
volumes:
- ./backend/src:/app/src
- ./backend/package.json:/app/package.json
- ./backend/package-lock.json:/app/package-lock.json
- backend-logs:/app/logs
- backend-temp:/app/temp
- backend-node-modules:/app/node_modules
- ~/.mc:/home/nodejs/.mc:ro
depends_on:
- redis
networks:
- minio-webui-network
frontend:
build:
context: ./frontend
dockerfile: ../docker/Dockerfile.frontend.dev
container_name: minio-webui-frontend-dev
restart: unless-stopped
environment:
PORT: 7511
REACT_APP_API_URL: http://localhost:7510/api
ports:
- "7511:7511"
volumes:
- ./frontend:/app
- /app/node_modules
depends_on:
- backend
networks:
- minio-webui-network
stdin_open: true
tty: true
redis:
image: redis:7-alpine
container_name: minio-webui-redis-dev
restart: unless-stopped
command: redis-server --appendonly yes
volumes:
- redis-data:/data
networks:
- minio-webui-network
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 30s
timeout: 10s
retries: 3
volumes:
redis-data:
driver: local
backend-logs:
driver: local
backend-temp:
driver: local
backend-node-modules:
driver: local
networks:
minio-webui-network:
driver: bridge