blackandred.server_docker_project

Docker化プロジェクト

GITからDocker化環境の自動デプロイメントには以下が含まれます:

  • systemd統合
  • 本番環境特有の.env設定
  • テストサーバー特有の.env設定(条件:ホストがlocalhostの場合)
  • プロジェクトを管理するためのMakefileサポート
  • 任意:プロジェクトリポジトリ内の暗号化された.env-prodファイル、デプロイ時に復号化

前提条件

  1. 任意のgitサーバーにプロジェクトが必要です。
  2. プロジェクトには「deployment_pre」タスクを含むMakefileが必要です。
  3. プロジェクトには.envファイル、または.env-templateが必要で、これは.envにコピーされます。

環境

# アプリケーションをデプロイするユーザー
deploy_user: tech.admin
deploy_group: technical
compose_env_name: "あなたのドッカーコンポーズ環境名"
systemd_service_sleep: 30

project_dir: /project

# ユーザーグループのためにrootで実行されるエントリーポイントがある場合は"./make.sh"に変更
# ここで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

#
# バックアップからの回復、最初のデプロイ時に全環境をバックアップから復元したい場合や
# 失敗した場合に使用します。一般的にこのフラグは手動で設定されるべきです。
#
# 外部サーバーにバックアップストレージのためにファイルリポジトリインスタンスを設定した場合のみ。
#
restore_from_backup_with_recovery_plan: no

# .env-distの代わりに.gitリポジトリに存在する場合は.env-prodを優先します
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としてプロビジョニングしながら、ユーザーYとしてRiotkitのHarborを実行している

Makefileには、非特権コマンドを実行すべき正確なユーザーが誰かを判断することが混乱を招くことがあります。 解決策は、ユーザーとグループIDを.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)