Dockerfile の変更方法

他の Docker コンテナもいくつか持っており、以下のような手順を実行しています。

# 現在のディレクトリの内容をコンテナ内の /app にコピー
COPY html /usr/share/nginx/html/
COPY dim.local.crt /etc/nginx/ssl/
COPY dim.local.key /etc/nginx/ssl/
COPY nginx.conf /etc/nginx/
COPY default.conf /etc/nginx/sites-enabled/

# requirements.txt に指定された必要なパッケージをインストール
#RUN pip install -r requirements.txt

# COPY コマンド後に nginx を再起動する必要がありますか?
RUN 

RUN apt-get update && \
    apt-get install -y nano && \
    rm -fr /var/lib/apt/lists/*

Discourse コンテナでも同様の手順を実行したいのですが、Dockerfile はどこにありますか?もしかしたら containers/app.yml の末尾にこれらを追加できるかもしれないと読んだのですが、確信が持てません。

どなたかご説明いただけますか?

具体的に何が必要なのか、詳しく説明してもらえますか?

カスタム証明書を追加するために Dockerfile をいじる必要はありません。そのためのガイドはこちらにあります:Allow SSL / HTTPS for your Discourse Docker setup

完全に同じことをするのは避けたいです。シェルスクリプトと crontab をコンテナにコピーして、いくつかのタスクを自動化したいと考えています。

app.yml の最後の 5 行には、カスタムコマンドを実行する例(例えば以下のようなスクリプトの追加)が含まれています。

- exec: curl example.com/script.sh | bash

これにより、そのスクリプトがダウンロードされ実行されます。

はい、その通りですが、ビルドを再実行するたびにコピーエラーが発生します:

## ビルド後に実行するカスタムコマンド
run:
  - exec: echo "カスタムコマンドの開始"
  ## 最初の登録時の 'From' メールアドレスを設定したい場合は、以下の行のコメントを外して変更してください:
  ## 最初のサインアップメールを受信した後、再度コメントアウトしてください。このコマンドは一度だけ実行すれば十分です。
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  
  - exec: cp /shared/rr/run_badges.sh /etc/cron.d/.
  - exec: cp /shared/rr/badges /etc/cron.d/.
  - exec: echo "カスタムコマンドの終了"

エラーログも共有してください。

確かに URL からそれらを取得できるかもしれません、それは一つの考えですね

ファイルは確かにホスト上に存在しています:

# ls -al shared/rr/
badges         run_badges.sh
#

エラーは以下の通りです:

FAILED
--------------------
Pups::ExecError: cp /shared/rr/run_badges.sh /etc/cron.d/. failed with return #<Process::Status: pid 1457 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params "cp /shared/rr/run_badges.sh /etc/cron.d/."
e23ff12630c8058c4b36ee8673404dafbe6791ec61aa630f1224400eba4e75e0
** FAILED TO BOOTSTRAP ** 上記にスクロールして、より早いエラーメッセージを探してください。複数のエラーがある可能性があります。
./discourse-doctor を使用すると、問題の診断に役立つかもしれません。

コンテナ内の /shared ディレクトリは、デフォルトで /var/discourse/shared/standalone にマッピングされるため、そこに欠落しているディレクトリがあります。

私はどのような間違いを犯しているのでしょうか @Falco

コマンド:

- exec: cp /shared/standalone/sql/run_badges.sh /root
Pups::ExecError: cp /shared/standalone/sql/run_badges.sh /root が失敗しました。戻り値: #<Process::Status: pid 1728 exit 1>

実は、この解決策は非常にうまく機能します。ご指摘いただきありがとうございます。