From ddb0990645a7f8435cc207286be91dcf3016868e Mon Sep 17 00:00:00 2001 From: Dave Richer Date: Wed, 2 Oct 2024 00:50:40 -0400 Subject: [PATCH] docker-redis - local tests Signed-off-by: Dave Richer --- Dockerfile | 5 ++++- _reference/dockerreadme.md | 1 + docker-compose.yml | 4 +++- redis/entrypoint.sh | 14 ++------------ 4 files changed, 10 insertions(+), 14 deletions(-) diff --git a/Dockerfile b/Dockerfile index 810e8b3b2..1f3b8db99 100644 --- a/Dockerfile +++ b/Dockerfile @@ -26,6 +26,9 @@ WORKDIR /app # Copy package.json and package-lock.json COPY package*.json ./ +# Install Nodemon +RUN npm install -g nodemon + # Install dependencies RUN npm install --omit=dev @@ -36,4 +39,4 @@ COPY . . EXPOSE 4000 # Start the application -CMD ["node", "server.js"] +CMD ["nodemon", "--legacy-watch", "server.js"] diff --git a/_reference/dockerreadme.md b/_reference/dockerreadme.md index 73d1ac346..a7f8e2aef 100644 --- a/_reference/dockerreadme.md +++ b/_reference/dockerreadme.md @@ -132,3 +132,4 @@ After editing the file, save it and then apply the new sysctl configuration by r ```bash sudo sysctl -p ``` + diff --git a/docker-compose.yml b/docker-compose.yml index 96febae61..4bcad6f73 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -63,7 +63,9 @@ services: condition: service_healthy ports: - "4000:4000" - + volumes: + - .:/app + - /app/node_modules # Prevents overwriting node_modules networks: redis-cluster-net: driver: bridge diff --git a/redis/entrypoint.sh b/redis/entrypoint.sh index 95228af31..a3d93feda 100644 --- a/redis/entrypoint.sh +++ b/redis/entrypoint.sh @@ -1,29 +1,19 @@ #!/bin/sh -LOCK_FILE="redis-cluster-init.lock" - # Start Redis server in the background redis-server /usr/local/etc/redis/redis.conf & # Wait for Redis server to start sleep 5 -# Initialize the cluster only if the lock file does not exist -if [ ! -f "$LOCK_FILE" ]; then +# Only initialize the cluster from one node to prevent race conditions +if [ "$HOSTNAME" = "redis-node-1" ]; then echo "Initializing Redis Cluster..." - - # Run the Redis cluster initialization yes yes | redis-cli --cluster create \ redis-node-1:6379 \ redis-node-2:6379 \ redis-node-3:6379 \ --cluster-replicas 0 - - # Create the lock file after initialization - touch "$LOCK_FILE" - echo "Cluster initialization complete. Lock file created." -else - echo "Cluster has already been initialized. Skipping initialization." fi # Keep the container running