From 50f9e11a350173164961122754fc2ecd198cf7a3 Mon Sep 17 00:00:00 2001 From: martin legrand Date: Sun, 25 May 2025 22:34:13 +0200 Subject: [PATCH] feat : optional run backend on host for start_services.sh --- docker-compose.yml | 4 ++++ start_services.sh | 56 +++++++++++++++++++++++++--------------------- 2 files changed, 34 insertions(+), 26 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index df34535..824d869 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,6 +3,7 @@ version: '3' services: redis: container_name: redis + profiles: ["core", "full"] image: docker.io/valkey/valkey:8-alpine command: valkey-server --save 30 1 --loglevel warning restart: unless-stopped @@ -24,6 +25,7 @@ services: searxng: container_name: searxng + profiles: ["core", "full"] image: docker.io/searxng/searxng:latest restart: unless-stopped ports: @@ -51,6 +53,7 @@ services: frontend: container_name: frontend + profiles: ["core", "full"] build: context: ./frontend dockerfile: Dockerfile.frontend @@ -68,6 +71,7 @@ services: backend: container_name: backend + profiles: ["backend", "full"] build: context: . dockerfile: Dockerfile.backend diff --git a/start_services.sh b/start_services.sh index ef95319..a972ce2 100755 --- a/start_services.sh +++ b/start_services.sh @@ -90,34 +90,38 @@ sleep 4 docker stop $(docker ps -a -q) echo "All containers stopped" -# First start backend and wait for it to be healthy -echo "Starting backend service..." -if ! $COMPOSE_CMD up -d backend; then - echo "Error: Failed to start backend container." - exit 1 -fi - -# Wait for backend to be healthy (check if it's running and not restarting) -echo "Waiting for backend to be ready..." -for i in {1..30}; do - if [ "$(docker inspect -f '{{.State.Running}}' backend)" = "true" ] && \ - [ "$(docker inspect -f '{{.State.Restarting}}' backend)" = "false" ]; then - echo "backend is ready!" - break +if [ "$1" = "full" ]; then + # First start backend and wait for it to be healthy + echo "Full docker deployement. Starting backend service..." + if ! $COMPOSE_CMD up -d backend; then + echo "Error: Failed to start backend container." + exit 1 fi - if [ $i -eq 30 ]; then - echo "Error: backend failed to start properly after 30 seconds" - $COMPOSE_CMD logs backend + # Wait for backend to be healthy (check if it's running and not restarting) + echo "Waiting for backend to be ready..." + for i in {1..30}; do + if [ "$(docker inspect -f '{{.State.Running}}' backend)" = "true" ] && \ + [ "$(docker inspect -f '{{.State.Restarting}}' backend)" = "false" ]; then + echo "backend is ready!" + break + fi + if [ $i -eq 30 ]; then + echo "Error: backend failed to start properly after 30 seconds" + $COMPOSE_CMD logs backend + exit 1 + fi + sleep 1 + done + if ! $COMPOSE_CMD --profile full up; then + echo "Error: Failed to start containers. Check Docker logs with '$COMPOSE_CMD logs'." + echo "Possible fixes: Run with sudo or ensure port 8080 is free." + exit 1 + fi +else + if ! $COMPOSE_CMD --profile core up; then + echo "Error: Failed to start containers. Check Docker logs with '$COMPOSE_CMD logs'." + echo "Possible fixes: Run with sudo or ensure port 8080 is free." exit 1 fi - sleep 1 -done - -# start remaining services for searxng, redis, frontend services - -if ! $COMPOSE_CMD up; then - echo "Error: Failed to start containers. Check Docker logs with '$COMPOSE_CMD logs'." - echo "Possible fixes: Run with sudo or ensure port 8080 is free." - exit 1 fi sleep 10 \ No newline at end of file