#!/bin/bash # Fix permissions for all services # This script updates Dockerfiles to ensure proper permissions echo "Fixing permissions in Dockerfiles..." # Function to add logs directory creation to Dockerfile fix_dockerfile() { local service=$1 local dockerfile="services/$service/Dockerfile" if [ -f "$dockerfile" ]; then echo "Fixing $dockerfile..." # Check if logs directory creation already exists if ! grep -q "RUN mkdir -p logs" "$dockerfile"; then # Add logs directory creation before the last RUN command sed -i '' '/RUN adduser -S nodejs -u 1001/a\ \ # Create logs directory with proper permissions\ RUN mkdir -p logs && chown -R nodejs:nodejs logs' "$dockerfile" fi # Check if USER nodejs is set if ! grep -q "USER nodejs" "$dockerfile"; then # Add USER nodejs at the end before CMD echo "" >> "$dockerfile" echo "# Switch to non-root user" >> "$dockerfile" echo "USER nodejs" >> "$dockerfile" fi fi } # Fix all service Dockerfiles services=( "api-gateway" "orchestrator" "claude-agent" "gramjs-adapter" "safety-guard" "analytics" "compliance-guard" "ab-testing" ) for service in "${services[@]}"; do fix_dockerfile "$service" done echo "Permissions fixed! Now rebuild the services:" echo "docker-compose build"