diff --git a/docker/Dockerfile b/docker/Dockerfile index 912e7c05..90e23363 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -32,13 +32,21 @@ COPY --from=frontend-builder /app/dist /usr/share/nginx/html COPY --from=backend-builder /app/node_modules ./node_modules COPY --from=backend-builder /app/src/backend ./src/backend -# Create directories for nginx -RUN mkdir -p /var/log/nginx && \ +# Create directories for MongoDB and nginx +RUN mkdir -p /data/db && \ + mkdir -p /var/log/nginx && \ mkdir -p /var/lib/nginx && \ + mkdir -p /var/log/mongodb && \ + chown -R mongodb:mongodb /data/db /var/log/mongodb && \ chown -R www-data:www-data /var/log/nginx /var/lib/nginx # Set environment variables -ENV MONGO_URL=mongodb://localhost:27017/termix +ENV MONGO_URL=mongodb://localhost:27017/termix \ + MONGODB_DATA_DIR=/data/db \ + MONGODB_LOG_DIR=/var/log/mongodb + +# Create volume for MongoDB data +VOLUME ["/data/db"] # Expose ports EXPOSE 8080 8081 8082 27017 diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index d63e6adb..22a09ee2 100644 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -1,7 +1,14 @@ #!/bin/bash # Start MongoDB -mongod --fork --logpath /var/log/mongodb.log +mongod --fork --dbpath $MONGODB_DATA_DIR --logpath $MONGODB_LOG_DIR/mongodb.log + +# Wait for MongoDB to be ready +echo "Waiting for MongoDB to start..." +until mongo --eval "print(\"waited for connection\")" > /dev/null 2>&1; do + sleep 0.5 +done +echo "MongoDB has started" # Start nginx nginx @@ -13,4 +20,4 @@ node src/backend/ssh.cjs & node src/backend/database.cjs & # Keep the container running and show MongoDB logs -tail -f /var/log/mongodb.log \ No newline at end of file +tail -f $MONGODB_LOG_DIR/mongodb.log \ No newline at end of file