Я новичок в докере, и я хочу разместить свой сайт 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.db.utils.OperationalError: FATAL: the database system is starting up
Я думаю, что служба postgresql занимает слишком много времени, чтобы начать. Как я могу избежать ошибки?
http://stackoverflow.com/q/35069027/1005215 –
@NehalJWani Я видел ответ, упомянутый там, и написал сценарий, который в этом ответе делает что-то похожее на скрипт python. Всякий раз, когда я пытаюсь подключиться к серверу, он говорит: «FATAL: система базы данных запускается» –
Я думаю, проблема решена. После ожидания в течение одной минуты он подключается к базе данных. –