他の 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 の末尾にこれらを追加できるかもしれないと読んだのですが、確信が持てません。
どなたかご説明いただけますか?
Falco
(Falco)
2
具体的に何が必要なのか、詳しく説明してもらえますか?
カスタム証明書を追加するために Dockerfile をいじる必要はありません。そのためのガイドはこちらにあります:Allow SSL / HTTPS for your Discourse Docker setup
完全に同じことをするのは避けたいです。シェルスクリプトと crontab をコンテナにコピーして、いくつかのタスクを自動化したいと考えています。
Falco
(Falco)
4
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 を使用すると、問題の診断に役立つかもしれません。
Falco
(Falco)
8
コンテナ内の /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>
実は、この解決策は非常にうまく機能します。ご指摘いただきありがとうございます。