diff --git a/docker-compose.yml b/docker-compose.yml index 4417b96..c425ce5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -64,8 +64,8 @@ services: - NEXT_PUBLIC_WS_URL=ws://192.168.50.130:8091 volumes: - ./frontend:/app - - /app/node_modules - - /app/.next + - frontend_node_modules:/app/node_modules + - frontend_next:/app/.next ports: - "3091:3000" depends_on: @@ -75,3 +75,5 @@ services: volumes: postgres_data: piston_packages: + frontend_node_modules: + frontend_next: diff --git a/frontend/Dockerfile b/frontend/Dockerfile index 47e9dc8..f99b2c5 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -11,8 +11,14 @@ RUN npm install # Copy application code COPY . . +# Make entrypoint executable +RUN chmod +x /app/entrypoint.sh + # Expose port EXPOSE 3000 +# Use entrypoint for dependency sync +ENTRYPOINT ["/app/entrypoint.sh"] + # Run the development server CMD ["npm", "run", "dev"] diff --git a/frontend/entrypoint.sh b/frontend/entrypoint.sh new file mode 100644 index 0000000..e603ed9 --- /dev/null +++ b/frontend/entrypoint.sh @@ -0,0 +1,11 @@ +#!/bin/sh +set -e + +# Sync node_modules if package.json changed +if [ ! -d "node_modules" ] || [ "package.json" -nt "node_modules" ]; then + echo "Installing dependencies..." + npm install + touch node_modules +fi + +exec "$@"