From 1dcb8711148db9d39ad58cbea4ea9c50f1ac2d98 Mon Sep 17 00:00:00 2001 From: Jp Date: Fri, 30 Jan 2026 22:24:17 +0800 Subject: [PATCH] fix(docker): correct port mapping and improve container startup - Fix port mapping from 5001:5001 to 5001:5000 to match internal application port - Add entrypoint script for proper database initialization and seeding - Set PORT environment variable to 5000 for consistency - Update Dockerfile to use entrypoint script with proper line ending handling --- calorie_tracker_app/Dockerfile | 12 ++++++++---- calorie_tracker_app/entrypoint.sh | 18 ++++++++++++++++++ docker-compose.yml | 4 +++- 3 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 calorie_tracker_app/entrypoint.sh diff --git a/calorie_tracker_app/Dockerfile b/calorie_tracker_app/Dockerfile index 7bfaabb..bcf727a 100644 --- a/calorie_tracker_app/Dockerfile +++ b/calorie_tracker_app/Dockerfile @@ -17,8 +17,12 @@ COPY . . # Create data directory RUN mkdir -p /app/data -# Expose port -EXPOSE 5001 +# Fix line endings for entrypoint script (in case of Windows checkout) and make executable +RUN sed -i 's/\r$//' entrypoint.sh && \ + chmod +x entrypoint.sh -# Run commands to init db, seed data, and start server -CMD ["sh", "-c", "flask init-db && flask seed-db && gunicorn -w 4 -b 0.0.0.0:5001 app:app"] +# Expose port (default 5000) +EXPOSE 5000 + +# Use entrypoint script to init db, seed data, and start server +ENTRYPOINT ["./entrypoint.sh"] diff --git a/calorie_tracker_app/entrypoint.sh b/calorie_tracker_app/entrypoint.sh new file mode 100644 index 0000000..3d63214 --- /dev/null +++ b/calorie_tracker_app/entrypoint.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +# Exit immediately if a command exits with a non-zero status +set -e + +# Initialize database +echo "Initializing database..." +flask init-db + +# Seed database +echo "Seeding database..." +flask seed-db + +# Start Gunicorn +# Use PORT environment variable if set, otherwise default to 5000 +PORT=${PORT:-5000} +echo "Starting Gunicorn on port $PORT..." +exec gunicorn -w 4 -b 0.0.0.0:$PORT app:app diff --git a/docker-compose.yml b/docker-compose.yml index a96e52a..cadf714 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,17 +2,19 @@ version: '3.8' services: calorie-tracker: + build: ./calorie_tracker_app image: git.jpaleviado.site/kingjaypee12/calorie-tracker:latest container_name: calorie-tracker restart: unless-stopped ports: - - "5001:5001" + - "5001:5000" volumes: - ./data:/app/data environment: - DATABASE_URL=sqlite:////app/data/calorie_tracker.db - SECRET_KEY=change-this-secret-key-in-production - API_NINJAS_KEY=${API_NINJAS_KEY} + - PORT=5000 networks: - casaos-net