./launcher enter app はすべてを再構築します

初心者です。議論のきっかけとして、以下の数行のトランスクリプトを提示します。

# ./launcher enter app                                                                                                                                                                         
x86_64 arch detected.                                                                                                                                                                                                   
                                                                                                                                                                                                                        
WARNING: We are about to start downloading the Discourse base image                                                                                                                                                     
This process may take anywhere between a few minutes to an hour, depending on your network speed                                                                                                                        
                                                                                                                                                                                                                        
Please be patient                                                                                                                                                                                                       
                                                                                                                                                                                                                        
2.0.20240602-0023: Pulling from discourse/base                                                                                                                                                                          
728328ac3bde: Extracting [=============================>                     ]  18.68MB/31.43MB                                                                                                                         
1c0ca3c0af81: Download complete
...

これは私が期待していた動作ではありません。

docker ps コマンドを入力すると、すでに何らかの Discourse コンテナが実行されていることがわかります。私がやりたいのは、その実行中のコンテナでシェルを取得することだけです。アプリ全体を再構築することではありません。実際、./launcher スクリプト内(約 746 行目あたり)では、./launcherenter コマンドは、私が期待していたこと、つまり次のコマンドを発行することになるようです。

docker exec -it app /bin/bash

これを行う前に、他にもたくさんの作業を行うべき説得力のある理由がありますか?もしそうであれば、教えてください。そうでなければ、経験とスキルを持つ誰かがこの質問を役立つ提案に変えてくれるかもしれません。ありがとうございます。

「いいね!」 1

はい、少なくとも1年前からそうしています。幸いなことに、新しいイメージのダウンロードにそれほど時間はかからず、シェルに誘導される前に他にあまり多くのことはしないようです。

ただし、使用されないイメージの束でドライブを不必要に散らかしているようです。おそらく、すぐに明らかにならない何らかの目的があるのでしょう。

これはバグのようですが? コンテナに入ろうとすると、新しいイメージがダウンロードされるのはなぜですか?

これは一度しか行われないことに気づきました… ./launcher enter app を 2 回目に実行すると、イメージのチェックがスキップされます。ここに何らかのトレードオフがあるのかもしれません…

それは、その時点でイメージがすでにダウンロードされているからではありませんか?

しかし、そもそもなぜそのようなことをするのでしょうか?
既存のコンテナに入ろうとしています。それだけです。

git pull を実行し、新しいイメージを取得します。そうしないと、多くの人が問題に直面したため、古いものになっていました。

プルを実行しない理由がある場合は、代わりに docker run コマンドを実行してください。

「いいね!」 1

これが理由かもしれないと思いました。厳格な論理とユーザーの期待の奇妙さを両立させることは、決して簡単ではありません。

これは苦労して学びました。今では、その設計上の決定を理解できます。

返信と素晴らしいソフトウェアをありがとうございました。

「いいね!」 1

アプリ全体を再構築しているわけではありません。git pull で docker_discourse を取得し、最新のベースイメージをプルしてから、期待どおりにコンテナに入れているだけです。そのため、初回以降はそうなりません。ディスク容量が極端に少ない場合や、10〜30秒が長い時間でない限り、実際には問題ではありません。

「いいね!」 2