DockerベースのPhabricatorプライベートGitコードウェアハウスの構築または移行


説明
現在、作業中に指示を受けたため、元の倉庫を別の機械に移す必要があるため、この文書を作成しながら記載し、後続の同じ作業がある場合に検索しやすくし、また、この文書が他の人を助けることができることを望んでいます.
Dockerベースの環境
Dockerを使用すると、MYSQLとPhabricatorの構築と導入を迅速に行うことができます.これにより、PHP環境や他の環境に費やさない時間を節約できます.これにより、移行に専念するだけでいいです.
MySQLの実行
PharicatorはMySQLのいくつかの構成にいくつかのハードな要求があるため、ここで設定したパラメータは要求に応じて設定したデフォルト値です.
docker run -d --name mysql -p 3306:3306  \
-e MYSQL_ROOT_PASSWORD=root -v mysql:/var/lib/mysql mysql:5.6 \
--innodb_buffer_pool_size=1600M \
--max_allowed_packet=33554432 \
--sql_mode=STRICT_ALL_TABLES

Phabricatorの実行
以下の例に従って、対応するパラメータを環境関連のアドレスに変更してください.
docker run -d --name phabricator \
    --rm -p 80:80 -p 443:443 \
    --env PHABRICATOR_HOST=phabricator.xxxx.com \
    --env MYSQL_HOST=172.16.1.10 \
    --env MYSQL_USER=root \
    --env MYSQL_PASS=root \
    --env PHABRICATOR_REPOSITORY_PATH=/repos \
    -v phabricator_repos:/repos \
    redpointgames/phabricator

注意:倉庫アドレスにアクセスするときは必ずドメイン名を使用してアクセスする必要があります.最も簡単な方法は、ローカルのhostsファイルを設定することです.
Phabricatorコンテンツの移行
概要
Phabricatorは現在、直接使用できるバックアップ機能を持っていませんが、提供されている簡単なツールを使用して、合理的なバックアップ操作を支援することができます.バックアップの際には、次の4つの点に注意する必要があります.
  • MySQLデータベース
  • コードライブラリディレクトリ
  • にアップロードされたファイル
  • Phabricatorのプロファイル
  • 注意:データが回復したらPhabricatorを再起動してください
    バックアップ:MySQLデータベース
    Phabricatorのデータの大部分はMySQLに存在し、バックアップのステップは重要です.bin/storage dumpコマンドを使用して、すべてのデータベース構造とデータを取得できます.このスクリプトはmysqldumpを使用してリカバリを行うことができます.しかし、Phabricatorの一部をエクスポートする必要があります.
    ほとんどのデータが圧縮できるようになってから、gzipはパッケージ記憶が優先されるかもしれない.次のようになります.
    phabricator/ $ ./bin/storage dump | gzip > backup.sql.gz

    そして、このファイルを比較的安全な場所に保存すると、スーパー管理者だけが見ることができます.他の人は権限も知らせない.
    リカバリ:MySQL
    MySQLのバックアップを復元するには、mysqlコマンドできれいなホストにログインするだけです.△前に圧縮した場合は、まず解凍操作が必要になる可能性があります.
    $ gunzip -c backup.sql.gz | mysql

    バックアップ:コードライブラリディレクトリ
    あなたの倉庫がPhabricatorにある場合は、バックアップする必要があります.bin/repository list-pathsコマンドを使用して、各倉庫がローカルにある場所を見つけることができます.圧縮コマンドによりパッケージ化し、どこかにコピーする.
    tar -czvf repos.tar.gz ${phabricator}/repos/*

    また、cloneを出てブランチが最新であることを保証し、Add Mirrorを使用して自動的に同期することもできます.
    リカバリ:コードライブラリディレクトリ
    コードライブラリを復元するには、上記のファイルディレクトリをターゲットホストの対応するディレクトリにコピーするだけです.
    tar -xzvf repos.tar.gz ${phabricator}/repos/

    バックアップ:アップロードされたファイル
    アップロードされたファイルには複数の異なる場所があるかもしれません.ファイルの保存場所の最初の設定によっては、デフォルトでMySQLに存在します.ファイル格納場所の詳細表示:クリックして表示
    リカバリ:アップロードされたファイル
    ローカルディスクストレージまたは他の方法を使用している場合は、対応するファイルをコピーするだけです.
    バックアップ:プロファイル
    Phabricatorのデフォルトでは、プロファイルは次の場所に配置されます.次のファイルを処理するだけです.
    phabricator/conf/local/local.json

    このファイルにはbin/config set key value設定を使用するプロパティを含むすべての設定情報が保存されています.
    リカバリ:プロファイル
    前にバックアップしたlocal.jsonファイルはphabricator/conf/local/localに格納されます.json位置でよいか、Dockerを使用している場合は、上記のミラーでコンテナの作成時にコマンドラインに設定できます.
    参考資料
    https://secure.phabricator.com/book/phabricator/article/configuring_backups/