From b281a85cb2e7e4b2d63ce28e8be2331dd111e6c7 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 24 Mar 2026 15:18:47 +0800 Subject: [PATCH] feat: add backend Dockerfile and docker-compose Co-Authored-By: Claude Opus 4.6 --- imagecreator/.env.example | 4 ++++ imagecreator/backend/Dockerfile | 19 ++++++++++++++++- imagecreator/docker-compose.yml | 38 +++++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 imagecreator/.env.example create mode 100644 imagecreator/docker-compose.yml diff --git a/imagecreator/.env.example b/imagecreator/.env.example new file mode 100644 index 0000000..a34145e --- /dev/null +++ b/imagecreator/.env.example @@ -0,0 +1,4 @@ +SECRET_KEY=your-secret-key-here +GEMINI_API_KEY=your-gemini-api-key +OPENAI_API_KEY=your-openai-api-key +DATABASE_URL=postgresql://user:pass@localhost:5432/imagecreator diff --git a/imagecreator/backend/Dockerfile b/imagecreator/backend/Dockerfile index f66f91d..392cd6a 100644 --- a/imagecreator/backend/Dockerfile +++ b/imagecreator/backend/Dockerfile @@ -1 +1,18 @@ -# TODO: Dockerfile will be implemented in a later task +FROM python:3.11-slim + +WORKDIR /app + +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +COPY app/ ./app/ + +RUN apt-get update && apt-get install -y --no-install-recommends \ + && rm -rf /var/lib/apt/lists/* + +# Create uploads directory +RUN mkdir -p /app/uploads + +EXPOSE 8000 + +CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"] diff --git a/imagecreator/docker-compose.yml b/imagecreator/docker-compose.yml new file mode 100644 index 0000000..980c45c --- /dev/null +++ b/imagecreator/docker-compose.yml @@ -0,0 +1,38 @@ +version: '3.8' + +services: + backend: + build: ./backend + ports: + - "8000:8000" + environment: + - DATABASE_URL=postgresql://user:pass@db:5432/imagecreator + - SECRET_KEY=change-this-secret-key-in-production + - GEMINI_API_KEY=${GEMINI_API_KEY} + - OPENAI_API_KEY=${OPENAI_API_KEY} + volumes: + - uploads:/app/uploads + depends_on: + - db + restart: unless-stopped + + frontend: + build: ./frontend + ports: + - "3000:80" + depends_on: + - backend + + db: + image: postgres:15-alpine + environment: + - POSTGRES_USER=user + - POSTGRES_PASSWORD=pass + - POSTGRES_DB=imagecreator + volumes: + - postgres_data:/var/lib/postgresql/data + restart: unless-stopped + +volumes: + postgres_data: + uploads: