From 58106b8dd8e746628897e9b88ae76a58fa498e3a Mon Sep 17 00:00:00 2001 From: "n.tolstov" Date: Sun, 30 Nov 2025 22:07:20 +0300 Subject: [PATCH] feat: Implement a frontend entrypoint script for conditional dependency installation and use named volumes for `node_modules` and `.next`. --- docker-compose.yml | 6 ++++-- frontend/Dockerfile | 6 ++++++ frontend/entrypoint.sh | 11 +++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 frontend/entrypoint.sh 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 "$@"