Update Dockerfile
Browse files- Dockerfile +18 -9
Dockerfile
CHANGED
@@ -67,12 +67,14 @@ ENV FLASK_APP=app.py \
|
|
67 |
DIFY_BIND_ADDRESS=0.0.0.0 \
|
68 |
DB_USERNAME=postgres \
|
69 |
DB_PASSWORD=difyai123456 \
|
70 |
-
DB_HOST=
|
71 |
DB_PORT=5432 \
|
72 |
DB_DATABASE=dify \
|
73 |
-
REDIS_HOST=
|
74 |
REDIS_PORT=6379 \
|
75 |
REDIS_PASSWORD=difyai123456 \
|
|
|
|
|
76 |
HOME=/home/user \
|
77 |
PATH=/home/user/.local/bin:$PATH \
|
78 |
PYTHONPATH=/app/api \
|
@@ -81,19 +83,26 @@ ENV FLASK_APP=app.py \
|
|
81 |
USER user
|
82 |
EXPOSE 7860 3000
|
83 |
|
84 |
-
# Create startup script with
|
85 |
RUN echo '#!/bin/bash\n\
|
86 |
echo "===== Application Startup at $(date "+%Y-%m-%d %H:%M:%S") ====="\n\
|
87 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
\n\
|
89 |
# Run database migrations\n\
|
90 |
cd /app/api && poetry run python -m flask db upgrade\n\
|
91 |
\n\
|
92 |
-
# Start Celery worker\n\
|
93 |
-
cd /app/api && poetry run python -m celery -A app.celery worker \
|
94 |
-
-P gevent -c 1 --loglevel INFO \
|
95 |
-
-Q dataset,generation,mail,ops_trace,app_deletion &\n\
|
96 |
-
\n\
|
97 |
# Start API server\n\
|
98 |
cd /app/api && poetry run python -m gunicorn app:app \
|
99 |
--bind ${DIFY_BIND_ADDRESS:-0.0.0.0}:${DIFY_PORT:-7860} \
|
|
|
67 |
DIFY_BIND_ADDRESS=0.0.0.0 \
|
68 |
DB_USERNAME=postgres \
|
69 |
DB_PASSWORD=difyai123456 \
|
70 |
+
DB_HOST=localhost \
|
71 |
DB_PORT=5432 \
|
72 |
DB_DATABASE=dify \
|
73 |
+
REDIS_HOST=localhost \
|
74 |
REDIS_PORT=6379 \
|
75 |
REDIS_PASSWORD=difyai123456 \
|
76 |
+
CELERY_BROKER_URL=amqp://guest:guest@localhost:5672// \
|
77 |
+
CELERY_RESULT_BACKEND=redis://localhost:6379/0 \
|
78 |
HOME=/home/user \
|
79 |
PATH=/home/user/.local/bin:$PATH \
|
80 |
PYTHONPATH=/app/api \
|
|
|
83 |
USER user
|
84 |
EXPOSE 7860 3000
|
85 |
|
86 |
+
# Create startup script with connection retries
|
87 |
RUN echo '#!/bin/bash\n\
|
88 |
echo "===== Application Startup at $(date "+%Y-%m-%d %H:%M:%S") ====="\n\
|
89 |
+
\n\
|
90 |
+
# Wait for database\n\
|
91 |
+
max_tries=30\n\
|
92 |
+
count=0\n\
|
93 |
+
while ! pg_isready -h $DB_HOST -p $DB_PORT -U $DB_USERNAME; do\n\
|
94 |
+
echo "Waiting for database connection..."\n\
|
95 |
+
sleep 2\n\
|
96 |
+
count=$((count+1))\n\
|
97 |
+
if [ $count -gt $max_tries ]; then\n\
|
98 |
+
echo "Failed to connect to database after $max_tries attempts"\n\
|
99 |
+
exit 1\n\
|
100 |
+
fi\n\
|
101 |
+
done\n\
|
102 |
\n\
|
103 |
# Run database migrations\n\
|
104 |
cd /app/api && poetry run python -m flask db upgrade\n\
|
105 |
\n\
|
|
|
|
|
|
|
|
|
|
|
106 |
# Start API server\n\
|
107 |
cd /app/api && poetry run python -m gunicorn app:app \
|
108 |
--bind ${DIFY_BIND_ADDRESS:-0.0.0.0}:${DIFY_PORT:-7860} \
|