blackandred.server_docker_project

Деплоймент Docker-проекта

Автоматизированный деплоймент Docker-окружения из GIT, который включает в себя:

  • интеграцию с systemd
  • конфигурацию .env, специфичную для продакшена
  • конфигурацию .env, специфичную для тестового сервера (когда: хост равен localhost)
  • поддержку Makefile для управления проектом
  • По желанию: зашифрованные файлы .env-prod в репозитории проекта, расшифровываются во время деплоя

Предварительные условия

  1. Вам нужен проект на любом git-сервере.
  2. Проект должен содержать Makefile с заданием "deployment_pre".
  3. В вашем проекте должен быть файл .env или .env-template, который будет скопирован в .env.

Окружение

# пользователь, который разворачивает приложение
deploy_user: tech.admin
deploy_group: technical
compose_env_name: "ваше-имя-docker-compose-окружения"
systemd_service_sleep: 30

project_dir: /project

# измените на что-то вроде "./make.sh", если у вас есть точка входа, выполняемая от имени группы пользователей
# не используйте sudo здесь (избегайте использования sudo внутри sudo)
make_executable: "./make.sh"

# этот адрес будет установлен только во время деплоя
git_deploy_url: https://user:password@somehost/someuser/somerepo

# без пользователя и пароля, этот адрес останется на сервере
git_regular_deploy_url: https://somehost/someuser/somerepo

# предотвращает перезапуск всего окружения при многократном деплойменте проекта
avoid_whole_environment_restart: yes

#
# Восстановление из резервной копии. При первом деплое вы можете восстановить всё окружение из резервной копии
# или в случае сбоя. Обычно этот флаг следует устанавливать вручную для каждого деплоя.
#
# Только если вы настроили экземпляр File Repository на внешнем сервере для хранения резервных копий.
#
restore_from_backup_with_recovery_plan: no

# предпочитайте .env-prod (если он присутствует в клонированном git-репозитории) вместо .env-dist
prefer_env_prod_over_dist: yes

# поддержка .env (также работает с .env-prod)
test_specific_env:
    - { line: "DOMAIN_SUFFIX=.localhost", regexp: '^DOMAIN_SUFFIX', title: 'env: Добавить суффикс домена - .localhost' }

production_specific_env:
    - { line: "DOMAIN_SUFFIX=", regexp: '^DOMAIN_SUFFIX', title: 'env: Удалить суффикс домена' }

Устранение неполадок

  1. Провизия от имени пользователя X, но запуск Harbor от Riotkit как пользователь Y

Это может быть очень запутанно для Makefile, кто именно должен выполнять непривилегированные команды. Решение - пропустить автоматическое определение пользователя, жестко закодировав идентификатор пользователя и группы в .env файл.

test_specific_env:
    - { line: "DOMAIN_SUFFIX=.localhost", regexp: '^DOMAIN_SUFFIX', title: 'env: Добавить суффикс домена - .localhost' }
    - { line: "APP_USER=tech.admin", regexp: '^APP_USER', title: 'env: APP_USER' }
    - { line: "APP_GROUP_ID=1800", regexp: '^APP_GROUP_ID', title: 'env: APP_GROUP_ID' }

production_specific_env:
    - { line: "DOMAIN_SUFFIX=", regexp: '^DOMAIN_SUFFIX', title: 'env: Удалить суффикс домена' }
    - { line: "APP_USER=tech.admin", regexp: '^APP_USER', title: 'env: APP_USER' }
    - { line: "APP_GROUP_ID=1800", regexp: '^APP_GROUP_ID', title: 'env: APP_GROUP_ID' }
О проекте

Docker-based project environment setup

Установить
ansible-galaxy install blackandred.server_docker_project
Лицензия
other
Загрузки
137
Владелец
ZSP is a grassroot organization acting for workers self-organization. Is a part of the International Workers Association (iwa-ait.org)