こんにちは。
./launcher rebuild app を実行するたびに、フォーラムがダウンします。
エラーを示すスクリーンショットを添付しました。
正しく理解できているなら、エラーメッセージは9行目に問題があると言っています。
このコマンドを入力してみてください。
cat -n containers/app.yml
これにより、ファイルの内容が行番号付きで表示されるので、9行目の構文エラーを確認できます。
出力で言及されている chmod コマンドも実行しておくのが良いでしょう。ただし、エラーとは関係ありません。
nano -l を使うと、正しい行を見つけてすぐに修正できるので、はるかに簡単です ![]()
もしあまり変更していないなら、app.yml の 9 行目は templates: の直前です。余分な空白など、何かおかしなことはありませんか?
しかし、YAML について学んだことは、空白がほぼどこにでも存在し、スペースの欠落、引用符の欠落、または間違った型があると、エラーが間違った場所を指し示すということです。
app.yml を削除して、セットアップをやり直す方が簡単だと思います。
その行を完全に削除しましたが、それでも9行目に構文エラーがあると言われます。
それを削除して再構築するにはどうすればよいですか?
まず、コンテンツがあればバックアップを取ります。その後、以下を実行します。
cd /var/discourse
mv containers/app.yml .
./discourse-setup
それは私のフォーラムデータを削除しますか?投稿やユーザーなど、すべてですか?
いいえ。しかし、だからこそ、最初に完全なバックアップを行ったのです。
ただし、こちらも試すことができます。
YAML検証を試しましたが、すべて問題ないとのことです。
バグだと思います
何かあります。
しかし、アプリの app.yml をそのままコピー&ペーストできます。そうすれば、もっと賢い人が確認できます。なぜなら今、何があるのか、何がないのか誰も知らないからです。
安全な情報(パスワードなど)を除いた、完全な app.yml を共有していただけますか?
## これは、すべてが1つになったスタンドアロンのDiscourse Dockerコンテナテンプレートです
##
## このファイルを変更した後は、必ず再構築してください
## /var/discourse/launcher rebuild app
##
## 編集は*非常に注意深く*行ってください!
## YAMLファイルは、空白または配置の誤りに非常に敏感です!
## 必要に応じて、このファイルを検証するために http://www.yamllint.com/ を参照してください
hooks: after_code: - exec: cd: $home/plugins cmd: - sudo -E -u discourse git clone https://github.com/discourse/docker_manager.git - sudo -E -u discourse git coe tp/gtu.c/dcusedcu-pile-rti
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
## Lets Encrypt (https) を追加したい場合は、これらの2行のコメントを解除してください
- "templates/web.ssl.template.yml"
- "templates/web.letsencrypt.ssl.template.yml"
## このコンテナはどのTCP/IPポートを公開しますか?
## Discourse が Apache や nginx のような他のウェブサーバーとポートを共有したい場合は、
## 詳細については https://meta.discourse.org/t/17247 を参照してください
expose:
- "80:80" # http
- "443:443" # https
params:
db_default_text_search_config: "pg_catalog.english"
## db_shared_buffers を総メモリの最大 25% に設定します。
## 検出されたRAMに基づいてブートストラップによって自動的に設定されるか、上書きできます
db_shared_buffers: "256MB"
## ソートパフォーマンスを向上させる可能性がありますが、接続ごとのメモリ使用量が増加します
#db_work_mem: "40MB"
## このコンテナはどのGitリビジョンを使用しますか? (デフォルト: tests-passed)
#version: tests-passed
## 最大アップロードサイズ (デフォルト: 900m)
upload_size: 900m
env:
# DISCOURSE_DEFAULT_LOCALE: en
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
## 同時に処理できるWebリクエスト数は?メモリとCPUコアに依存します。
## 検出されたCPUに基づいてブートストラップによって自動的に設定されるか、上書きできます
UNICORN_WORKERS: 4
## TODO: このDiscourseインスタンスが応答するドメイン名
## 必須。Discourse は単純なIPアドレスでは機能しません。
DISCOURSE_HOSTNAME:
## 上記で指定されたホスト名 (-h オプション) と同じホスト名でコンテナを起動したい場合は、コメントを解除してください (デフォルトは "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO: 初期サインアップ時に管理者および開発者になるメールアドレスのカンマ区切りリスト
## 例: 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: ''
## TODO: 新規アカウントの検証と通知の送信に使用されるSMTPメールサーバー
# SMTPアドレス、ユーザー名、パスワードが必要です
# 注意: SMTPパスワードの '#' 文字は問題を引き起こす可能性があります!
DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: ###
DISCOURSE_SMTP_PASSWORD: "##-07e2c238-419aaa92"
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (オプション、デフォルトはtrue)
DISCOURSE_SMTP_DOMAIN:
DISCOURSE_NOTIFICATION_EMAIL:
## Lets Encrypt テンプレートを追加した場合、無料のSSL証明書を取得するには以下をコメント解除してください
LETSENCRYPT_ACCOUNT_EMAIL: me@example.com
## このDiscourseインスタンスのHTTPまたはHTTPS CDNアドレス(プル用に設定)
## 詳細については https://meta.discourse.org/t/14857 を参照してください
#DISCOURSE_CDN_URL: https://discourse-cdn.example.com
## IPアドレスルックアップ用のMaxMindジオロケーションIPアドレスキー
## 詳細については https://meta.discourse.org/t/-/137387/23 を参照してください
#DISCOURSE_MAXMIND_LICENSE_KEY: ##
## Dockerコンテナはステートレスです。すべてのデータは/sharedに保存されます
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
## プラグインはここに配置します
## 詳細については https://meta.discourse.org/t/19157 を参照してください
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
## ビルド後に実行するカスタムコマンド
run:
- exec: echo "カスタムコマンドの開始"
## 初回登録時の「From」メールアドレスを設定したい場合は、コメントを解除して変更してください:
## 初回のサインアップメールを受信したら、行を再度コメントアウトしてください。一度だけ実行する必要があります。
#- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
- exec: echo "カスタムコマンドの終了"
ファイルの先頭がこれであってはならないと思います。
hooks: after_code: - exec: cd: $home/plugins cmd: - sudo -E -u discourse git clone https://github.com/discourse/docker_manager.git - sudo -E -u discourse git coe tp/gtu.c/dcusedcu-pile-rti
また、LANG: en_US.UTF-8 行の下に 2 行足りません。
LANGUAGE: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
気づいていないものがもっとあるかもしれませんが、これはデフォルトのファイルですので、比較してみてください。
hooks: で始まる最初の実際の行は正しくないはずです。次のようなものになるはずです。
hooks:
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
- sudo -E -u discourse bundle exec rake posts:rebake
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/discourse/docker_manager.git
まあ、これは私のものから取ったものなので、正確ではありませんが、行やインデントなどは似ているはずです。
私を圧倒しますね ![]()
あの惨状を修正する最速かつ最も簡単な方法は、新しい ./discourse-setup を実行することだと思いますか?