HansHübner
(Hans Hübner)
1
こんにちは。
WoltlabフォーラムからDiscourseにデータをインポートするためのカスタムインポーターを開発しました。Dockerを使用せずに開発マシン上でDiscourseを直接実行したため、移行コードが含まれるファイルが script/import_scripts/ にいくつかあります。現時点では、公式のDiscourse GitHubリポジトリのフォークにこれらのファイルがあります。
現在、公式のDockerベースのインストールに移行したいのですが、移行はローリング方式で行う必要があるため、しばらくの間インポーターコードを新しいインストールで利用できるようにする必要があります。可能であれば、インポーターコードを別のリポジトリに保持し、クリーンな方法で本番環境のインストールで利用できるようにしたいと考えています。
Railsの知識は限られているため、明白なアプローチを見逃している可能性があります。どなたか正しい方向性を示していただけますでしょうか?
よろしくお願いします。
ハンス
「いいね!」 3
HansHübner
(Hans Hübner)
3
RGJさん、ありがとうございます!その方法で進めます。
Dockerコンテナ内のリポジトリURLを変更し、インポーターを実行できるようになりました。しかし、./launcher rebuild app を実行したところ、リポジトリがアップストリームにリセットされてしまいました。Dockerfileを確認したところ、リポジトリパスがハードコードされているように見えますが、ベースコンテナがローカルでビルドされているわけではないため、Dockerfileの変更は期待どおりの効果をもたらさないようです。これを機能させるための正規の方法はありますか?
cocococosti
(Constanza Abarca)
5
2つのコンテナで作業することをお勧めします。現在の app.yml ファイル(/var/discourse/containers にあります)をコピーして import.yml のような別の名前に変更することで、これを行うことができます。次に、version パラメータをカスタムインポーターブランチに更新します。
params:
version: your-branch
インポートを実行する必要があるときはいつでも、app コンテナを停止し、import コンテナを開始して、import コンテナ内でスクリプトを実行します。Discourse で大幅な変更が行われた場合は、ブランチをコアの最新コミットでリベースし、コンテナを再構築する必要がある場合があります。
cd /var/discourse
./launcher enter import
# 別のブランチに切り替えたい場合
su discourse -c 'git checkout <branch>'
# 新しいコードをプルしたい場合
su discourse -c 'git pull'
移行が完了したら、インポートコンテナを停止し、アプリコンテナを再起動します。
cd /var/discourse
./launcher stop import
./launcher start app
これらすべてを教えてくれた @gerhard さんに感謝します 
「いいね!」 6
system
(system)
クローズされました:
6
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.