Skip to content

Commit 9b35016

Browse files
committed
feat: Add Docker support with Dockerfile and docker-compose.yml
1 parent f80a3a6 commit 9b35016

File tree

3 files changed

+133
-0
lines changed

3 files changed

+133
-0
lines changed

.dockerignore

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# Git
2+
.git
3+
.gitignore
4+
5+
# Python
6+
__pycache__
7+
*.pyc
8+
*.pyo
9+
*.pyd
10+
.Python
11+
*.so
12+
*.egg
13+
*.egg-info
14+
dist
15+
build
16+
17+
# Virtual environments
18+
venv/
19+
env/
20+
ENV/
21+
.venv
22+
23+
# Environment files
24+
.env
25+
.env.local
26+
.env.*.local
27+
28+
# IDE
29+
.vscode/
30+
.idea/
31+
*.swp
32+
*.swo
33+
34+
# OS
35+
.DS_Store
36+
Thumbs.db
37+
38+
# Logs
39+
logs/
40+
*.log
41+
42+
# Database
43+
*.db
44+
*.sqlite
45+
*.sqlite3
46+
instance/
47+
48+
# Testing
49+
.pytest_cache/
50+
.coverage
51+
htmlcov/
52+
53+
# Profiling
54+
*.prof
55+
*.pstats
56+
57+
# Documentation
58+
*.md
59+
!README.md
60+
61+
# Docker
62+
Dockerfile
63+
docker-compose.yml
64+
.dockerignore
65+

Dockerfile

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
FROM python:3.10-slim
2+
3+
# Set working directory
4+
WORKDIR /app
5+
6+
# Install system dependencies
7+
RUN apt-get update && apt-get install -y \
8+
gcc \
9+
g++ \
10+
&& rm -rf /var/lib/apt/lists/*
11+
12+
# Copy requirements file
13+
COPY requirements.txt .
14+
15+
# Install Python dependencies
16+
RUN pip install --no-cache-dir -r requirements.txt
17+
18+
# Copy application code
19+
COPY . .
20+
21+
# Create necessary directories
22+
RUN mkdir -p logs uploads uploads/images
23+
24+
# Set environment variables
25+
ENV PYTHONUNBUFFERED=1
26+
ENV FLASK_APP=app.py
27+
28+
# Expose port
29+
EXPOSE 5000
30+
31+
# Run gunicorn
32+
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:5000", "--timeout", "600", "app:app"]
33+

docker-compose.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
version: '3.8'
2+
3+
services:
4+
web:
5+
build: .
6+
container_name: chatforge-api
7+
ports:
8+
- "5000:5000"
9+
environment:
10+
- FLASK_ENV=production
11+
- DB_URI=${DB_URI}
12+
- JWT_SECRET_KEY=${JWT_SECRET_KEY}
13+
- OPENAI_API_KEY=${OPENAI_API_KEY}
14+
- PINECONE_API_KEY=${PINECONE_API_KEY}
15+
- PINECONE_ENVIRONMENT=${PINECONE_ENVIRONMENT}
16+
- MAIL_USERNAME=${MAIL_USERNAME}
17+
- MAIL_PASSWORD=${MAIL_PASSWORD}
18+
- STRIPE_SECRET_KEY=${STRIPE_SECRET_KEY}
19+
- STRIPE_PUBLISHABLE_KEY=${STRIPE_PUBLISHABLE_KEY}
20+
- STRIPE_ENDPINT_SECRET=${STRIPE_ENDPINT_SECRET}
21+
- SHOPIFY_API_KEY=${SHOPIFY_API_KEY}
22+
- SHOPIFY_SECRET_KEY=${SHOPIFY_SECRET_KEY}
23+
- MAUTIC_BASE_URL=${MAUTIC_BASE_URL}
24+
- MAUTIC_CLIENT_ID=${MAUTIC_CLIENT_ID}
25+
- MAUTIC_CLIENT_SECRET=${MAUTIC_CLIENT_SECRET}
26+
- BUCKET_ACCESS_KEY_ID=${BUCKET_ACCESS_KEY_ID}
27+
- BUCKET_SECRET_ACCESS_KEY=${BUCKET_SECRET_ACCESS_KEY}
28+
- BUCKET_ENDPOINT=${BUCKET_ENDPOINT}
29+
- UPLOAD_FOLDER=/app/uploads
30+
- FRONTEND_DOMAIN=${FRONTEND_DOMAIN}
31+
volumes:
32+
- ./uploads:/app/uploads
33+
- ./logs:/app/logs
34+
restart: unless-stopped
35+

0 commit comments

Comments
 (0)