/docker-compose-python

Docker-environment for web-development on Python (Django)

Primary LanguageMakefileMIT LicenseMIT

Nginx + Postgres + Django uWSGI

Установка

  • Клонируем репозиторий
  • Переименовываем директорию docker-compose-python в your-project
  • Кладем ваш проект в your-project/projects/site
  • Кладем requirements.txt вашего проекта в your-project/docker/uwsgi/build/requirements.txt
  • Правим docker/uwsgi/build/Dockerfile, заменяем там site.wsgi на свой модуль
  • Запускаем make upb (docker-compose up -d --build)

Управление

Для удобства управления все основные команды внесены в Makefile. Для просмотра доступных команд выполните cat Makefile.

Запуск:

#docker-compose up -d
make up

Остановка

#docker-compose stop
make stop

Просмотр статуса запущеных контейнеров

#docker-compose ps
make ps

Просмотр логов контейнера

#docker-compose logs --tail=100 -f (uwsgi|nginx|postgres)
make logs name=uwsgi

Подключение к Postgres

#docker-compose exec uwsgi psql -U postgres -h postgres -W
make postgres

Просмотр реквизитов для подключения

make dbpass

Тонкая настройка

Смена реквизитов доступа к БД

cp docker-compose.override.yml.example docker-compose.override.yml

И меняем там реквизиты доступа.

Смена логина/пароля demo:demo

Открываем docker/nginx/.htpasswd и заменяем его содержимое

Acme.sh

#docker-compose run --rm acme acme.sh --issue -d site.ru -d www.site.ru -w /acme-challenge
make ssl d=site.ru,www.site.ru

SSL-сертификаты сохраняются в директорию docker/nginx/ssl. Чтобы все заработало нужно раскомментировать строчки в конфиге docker-compose.yml

      # - ./docker/nginx/ssl:/etc/nginx/ssl:ro

А также раскомментировать строчку

      # -"443:443"

Примеры конфигов для https в docker/nginx/config/examples/

crontab

25 4 * * * /usr/local/bin/docker-compose -f /srv/www/docker-compose-python/docker-compose.acme.yml run --rm acme acme.sh --cron
30 4 * * * /usr/local/bin/docker-compose -f /srv/www/docker-compose-python/docker-compose.yml exec nginx nginx -t && /usr/local/bin/docker-compose -f /srv/www/docker-compose-python/docker-compose.yml restart nginx

Если нужно запустить acme.sh для каких-то других целей это можно сделать данной командой:

make acme

Node.js

#docker-compose run --rm node-10 /bin/ash
make node