0
我是碼頭工人,我想將我的Django網站放在碼頭集裝箱內。我已經安裝在容器如下所述: http://michal.karzynski.pl/blog/2015/04/19/packaging-django-applications-as-docker-container-images/在碼頭入口腳本中啓動postgres服務
我還創建了一個名爲entryPointScript.sh
的入口腳本包含以下內容:
#!/bin/bash
service postgresql start
sleep 2s #sleep for two seconds
source /srv/project/EnvProject/bin/activate
python /srv/project/manage.py collectstatic --noinput # Collect static files
python /srv/project/manage.py migrate_schemas # Apply database migrations
# Prepare log files and start outputting logs to stdout
touch /srv/logs/gunicorn.log
touch /srv/logs/access.log
tail -n 0 -f /srv/logs/*.log &
# Start Gunicorn processes
#echo Starting Gunicorn.
# exec gunicorn project.wsgi:application \
# --name project \
# --bind 0.0.0.0:8000 \
# --workers 3 \
# --log-level=info \
# --log-file=/srv/logs/gunicorn.log \
# --access-logfile=/srv/logs/access.log \
# "[email protected]"
#Export Python Path
PYTHONPATH=/srv/project/Envproject/bin
# Start Uwsgi Process
echo Starting Uwsgi
exec uwsgi
--http :8000
--socket 0.0.0.0:8000
--home /srv/project/Envproject/
--chdir /srv/project/project
--wsgi-file /srv/project/project/wsgi.py
--uid root
--pythonpath /srv/project/Envproject/
然而,當我使用下面的命令來啓動容器:
docker run -i -t --entrypoint=/entryPointScript.sh nikssardana/project
Django的拋出一個錯誤:
django.db.utils.OperationalError: FATAL: the database system is starting up
我認爲postgresql服務啓動時間太長。我怎樣才能避免這個錯誤?
http://stackoverflow.com/q/35069027/1005215 –
@NehalJWani我看到了那裏提到的答案,並寫了一個腳本,在那個答案中做了類似於python腳本的腳本。每當我嘗試連接到服務器時,它都會顯示:「致命:數據庫系統正在啓動」 –
我想問題已解決。等待一分鐘左右後,它連接到數據庫。 –