長い間、pups が何なのかよく理解できておらず、正直なところ今でも少し混乱しています。
![]()
Discourse の Docker イメージを構成する必要があることは理解しています。これを bash スクリプトで行うのではなく、yml ファイル(bash スクリプトを生成するもの)を通じて行うようですが、そのファイルはここにあります: https://github.com/discourse/discourse_docker/tree/master/samples
Docker コンテナの起動と pups による構成は、こちらの起動スクリプトで密接に絡み合っています。
私がリンクした行は特に興味深いです。どうやら pups を Docker コンテナ内で実行しているようです。test.yml を pups で実行してみましたが、もちろん Docker コンテナ内では実行されませんでした。ただ、即座に実行される bash スクリプト(bash コマンド?)を生成しただけでした。
私の質問は:pups を開発用 Docker コンテナ内で実行するにはどうすればよいのでしょうか?私が指し示したこの行は非常に長く、私のユースケースにとっては不要な部分もあるようです。pups の出力を Docker コンテナと組み合わせる簡単な例を示していただけないでしょうか。
基本的には、起動スクリプトにあるものと同様の pups コマンドを追加したいと考えています。boot_dev スクリプト の末尾で、あるいは boot dev スクリプト実行後に別スクリプトとして実行したいです。
背景情報:
これを行う理由 → runit に長時間実行されるプロセスを追加したいです。@merefield 氏はこの方法について参考にするよう、彼の Frotz プラグインを指摘してくれました。
問題は:pups 入力のテストをローカルで行うにはどうすればよいのかということです。私の理解では、Docker 開発インスタンスは yml ファイルや pups を通じて構成されていないようです。Frotz プラグインの pups 入力は、プラグインをインストールする際のサーバー yml ファイルに関するものなので、ローカルでこれをどう行うのか基本的に混乱しています。
さて、ありがとう ![]()
編集:
はい、このような行を見つけました。
つまり、pups は単にコンテナ内で実行すればよいだけだということです。なぜそれがコマンド生成だけだと思ったのか分かりません。README にこんな一文があったのを見たからです。
pups は、Unix イメージを作成するプロセスを自動化できる小さなライブラリです。
これは私にはあまり意味が通じなかったので、自然と私の潜在意識が働き始めました。
--gen-docker-run-args引数は、pups の出力引数をdocker run <arguments output>の形式にするために使用されます。
これが私に、pups を yml ファイルを bash コマンド出力に変換するもの(yml から bash へのコンパイラのようなもの)と概念化させてしまいました。しかし実際には、pups は yml インタプリタのようなものです。コマンドを生成するだけでなく、即座に実行もします。