blackandred.server_docker_project

Projekt Dockerowy

Automatyczne wdrożenie środowiska Dockerowego z GIT, które zawiera:

  • integrację z systemd
  • specyficzną konfigurację .env dla produkcji
  • specyficzną konfigurację .env dla serwera testowego (gdy: host równa się localhost)
  • wsparcie Makefile do zarządzania projektem
  • Opcjonalnie: Zaszyfrowane pliki .env-prod w repozytorium projektu, odszyfrowywane podczas wdrożenia

Wstępne wymagania

  1. Musisz mieć projekt na dowolnym serwerze git.
  2. Projekt musi mieć plik Makefile z zadaniem "deployment_pre".
  3. Twój projekt musi mieć plik .env lub .env-template, który zostanie skopiowany do .env.

Środowisko

# użytkownik który wdraża aplikację
deploy_user: tech.admin
deploy_group: technical
compose_env_name: "nazwa-twojego-środowiska-docker-compose"
systemd_service_sleep: 30

project_dir: /project

# zmień na coś jak "./make.sh", jeśli masz skrypt uruchamiany jako root dla danej grupy użytkowników
# nie używaj sudo tutaj (unikaj używania sudo w sudo)
make_executable: "./make.sh"

# ten adres zostanie ustawiony tylko podczas czasu wdrożenia
git_deploy_url: https://user:password@somehost/someuser/somerepo

# bez użytkownika i hasła, ten adres pozostanie na serwerze
git_regular_deploy_url: https://somehost/someuser/somerepo

# zapobiega ponownemu uruchamianiu całego środowiska podczas wielokrotnego wdrożenia projektu
avoid_whole_environment_restart: yes

#
# Odtworzenie z kopii zapasowej, podczas pierwszego wdrożenia może być konieczne przywrócenie całego środowiska z kopii zapasowej lub w przypadku awarii.
# Generalnie ten flag powinien być ustawiany ręcznie na każde wdrożenie.
#
# Tylko jeśli skonfigurowałeś instancję repozytorium plików na zewnętrznym serwerze do przechowywania kopii zapasowych.
#
restore_from_backup_with_recovery_plan: no

# preferuj .env-prod (jeśli jest obecny w sklonowanym repozytorium git) zamiast .env-dist
prefer_env_prod_over_dist: yes

# wsparcie dla .env (działa również z .env-prod)
test_specific_env:
    - { line: "DOMAIN_SUFFIX=.localhost", regexp: '^DOMAIN_SUFFIX', title: 'env: Dodaj sufiks domeny - .localhost' }

production_specific_env:
    - { line: "DOMAIN_SUFFIX=", regexp: '^DOMAIN_SUFFIX', title: 'env: Usuń sufiks domeny' }

Rozwiązywanie problemów

  1. Aktywowano jako użytkownik X, ale uruchamiający Harbor od Riotkit jako użytkownik Y

Może być to mylące dla Makefile, kto dokładnie powinien uruchamiać polecenia bez uprawnień. Rozwiązaniem jest zrezygnowanie z automatycznego wykrywania użytkownika, poprzez hardcodowanie identyfikatora użytkownika i grupy w pliku .env.

test_specific_env:
    - { line: "DOMAIN_SUFFIX=.localhost", regexp: '^DOMAIN_SUFFIX', title: 'env: Dodaj sufiks domeny - .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: Usuń sufiks domeny' }
    - { 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' }
O projekcie

Docker-based project environment setup

Zainstaluj
ansible-galaxy install blackandred.server_docker_project
Licencja
other
Pobrania
137
Właściciel
ZSP is a grassroot organization acting for workers self-organization. Is a part of the International Workers Association (iwa-ait.org)