pfaffman
(Jay Pfaffman)
2023 年 1 月 27 日午後 5:02
1
GitHub Actions でイメージをビルドしていますが、apt-get update を実行しようとすると失敗します。まだ原因を調査中ですが、2時間前に行ったインストールでは、コンテナ内で apt-get update を実行するとこのエラーが発生します。
root@monstera-web-only:/# apt-get update
Get:1 http://deb.debian.org/debian bullseye InRelease [116 kB]
Get:2 https://dl.yarnpkg.com/debian stable InRelease [17.1 kB]
Get:3 http://deb.debian.org/debian-security bullseye-security InRelease [48.4 kB]
Get:4 http://deb.debian.org/debian bullseye-updates InRelease [44.1 kB]
Get:5 http://deb.debian.org/debian bullseye-backports InRelease [49.0 kB]
Get:6 http://apt.postgresql.org/pub/repos/apt bullseye-pgdg InRelease [91.7 kB]
Get:7 http://deb.debian.org/debian bullseye/main amd64 Packages [8,183 kB]
Err:2 https://dl.yarnpkg.com/debian stable InRelease
以下の署名が無効です: EXPKEYSIG 23E7166788B63E1E Yarn Packaging <yarn@dan.cx>
Get:8 http://deb.debian.org/debian-security bullseye-security/main amd64 Packages [216 kB]
Get:9 http://deb.debian.org/debian bullseye-updates/main amd64 Packages [14.6 kB]
Get:10 http://deb.debian.org/debian bullseye-backports/main amd64 Packages [384 kB]
Get:11 https://deb.nodesource.com/node_18.x bullseye InRelease [4,586 B]
Get:12 http://apt.postgresql.org/pub/repos/apt bullseye-pgdg/main amd64 Packages [268 kB]
Get:13 https://deb.nodesource.com/node_18.x bullseye/main amd64 Packages [774 B]
Reading package lists... Done
W: GPG error: https://dl.yarnpkg.com/debian stable InRelease: The following signatures were invalid: EXPKEYSIG 23E7166788B63E1E Yarn Packaging <yarn@dan.cx>
E: The repository 'https://dl.yarnpkg.com/debian stable InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
「いいね!」 1
Falco
(Falco)
2023 年 1 月 27 日午後 5:08
2
コンテナ内の cat /VERSION の出力を共有していただけますか?日次イメージビルド CI にエラーは見られません。
pfaffman
(Jay Pfaffman)
2023 年 1 月 27 日午後 5:20
3
これは標準的なインストールだと誓います。 . .
# cat /VERSION
2.0.20230116
CIで何か愚かなことをしていないか確認中です(それは完全に可能です)。何が apt-get update を実行しているのかさえわかりません。
編集:私のCIには vim をインストールするテンプレートがあります。それは apt-get update を実行します。通常のインストールでは、見える限り apt-get update を実行するものはありません。そのため、あなたのCIが失敗しない理由がわかりました。
インポートテンプレートやPostgresアップグレードテンプレートの多く(下記参照)は apt-get update を実行するため、これはいつか問題になるでしょう。
root@monstera:/var/discourse# grep -lr 'apt-get update'
templates/postgres.9.5.template.yml
templates/postgres.13.template.yml
templates/postgres.template.yml
templates/import/mbox.template.yml
templates/import/mysql-dep.template.yml
templates/import/vanilla.template.yml
templates/import/chrome-dep.template.yml
templates/import/phpbb3.template.yml
templates/postgres.10.template.yml
templates/postgres.12.template.yml
image/base/slim.Dockerfile
「いいね!」 1
Falco
(Falco)
2023 年 1 月 27 日午後 5:27
4
はい、それが私の次の質問になります。そのようなアップデートの実行はデフォルトではなく、追跡が困難なばらつきをもたらすためです。ほとんどのサイトでは静的なOSを使用し、OSレベルのものを更新するために新しいイメージに依存しています。
yarn apt リポジトリが壊れた場合、CI も壊れると想定されます。
これは来週確認できます。OSレベルのものを更新するために新しいベースイメージをリリースする必要があるかもしれません。
「いいね!」 1
pfaffman
(Jay Pfaffman)
2023 年 1 月 27 日午後 5:58
5
了解しました。~~確認ですが、新しいphpbb3インポートコンテナをビルドする必要があり、それができません。~~修正方法は以下の通りです。
こちらをご覧ください。
opened 08:37AM - 02 Feb 20 UTC
closed 07:41AM - 05 Mar 20 UTC
os-linux
bug-distrib
If you see an error like this:
```
The following signatures were invalid: EXPK… EYSIG 23E7166788B63E1E Yarn Packaging <yarn@dan.cx>
```
Or like this:
```
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://dl.yarnpkg.com/debian stable InRelease: The following signatures were invalid: EXPKEYSIG 23E7166788B63E1E Yarn Packaging <yarn@dan.cx>
W: Failed to fetch https://dl.yarnpkg.com/debian/dists/stable/InRelease The following signatures were invalid: EXPKEYSIG 23E7166788B63E1E Yarn Packaging <yarn@dan.cx>
```
It means that you still have an older version of the GPG key used to sign Yarn releases. The expiry date for this key was extended from 2020 to 2021. To get the updated key, run this:
```sh
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
```
This will likely be automated in the future.
しかし、apt-key は非推奨であるため、curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - を使用することが推奨されています。
コンテナ内で次のように実行すると:
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg -o /usr/share/keyrings/yarn-keyring.asc \
&& sed -i '1s;^deb;deb [signed-by=/usr/share/keyrings/yarn-keyring.asc];' /etc/apt/sources.list.d/yarn.list
次のような apt-get update を実行できます:
root@monstera-web-only:/# apt-get update
Hit:1 https://deb.nodesource.com/node_18.x bullseye InRelease
Hit:2 http://deb.debian.org/debian bullseye InRelease
Get:3 https://dl.yarnpkg.com/debian stable InRelease [17.1 kB]
Get:4 http://deb.debian.org/debian-security bullseye-security InRelease [48.4 kB]
Hit:5 http://deb.debian.org/debian bullseye-updates InRelease
Hit:6 http://deb.debian.org/debian bullseye-backports InRelease
Get:7 https://dl.yarnpkg.com/debian stable/main all Packages [10.9 kB]
Get:8 http://deb.debian.org/debian-security bullseye-security/main amd64 Packages [216 kB]
Hit:9 http://apt.postgresql.org/pub/repos/apt bullseye-pgdg InRelease
Get:10 https://dl.yarnpkg.com/debian stable/main amd64 Packages [10.9 kB]
Fetched 286 kB in 0s (849 kB/s)
Reading package lists... Done
同様に、templates/import/phpbb3.template.yml の apt-get update の前に次を追加すると:
- curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg -o /usr/share/keyrings/yarn-keyring.asc && sed -i '1s;^deb;deb [signed-by=/usr/share/keyrings/yarn-keyring.asc];' /etc/apt/sources.list.d/yarn.list
新しいコンテナをビルドできるようになります。
「いいね!」 3
@Falco 重複投稿すみません!
@pfaffman ありがとうございます!この回避策は mysql-dep.template.yml でも機能することを確認しました。
Jay Pfaffman:
同様に、templates/import/phpbb3.template.yml の apt-get update の前に
- curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg -o /usr/share/keyrings/yarn-keyring.asc && sed -i '1s;^deb;deb [signed-by=/usr/share/keyrings/yarn-keyring.asc];' /etc/apt/sources.list.d/yarn.list
を追加すると、新しいコンテナをビルドできます。
「いいね!」 2
アップデートで同様のエラーが発生しています。
Err:7 https://dl.yarnpkg.com/debian stable InRelease
以下の署名が無効です: EXPKEYSIG 23E7166788B63E1E Yarn Packaging <yarn@dan.cx>
Get:13 http://apt.postgresql.org/pub/repos/apt bullseye-pgdg/main amd64 Packages [268 kB]
Reading package lists...
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y libsqlite3-dev failed with return #<Process::Status: pid 532 exit 100>
Location of failure: /usr/local/lib/ruby/gems/3.1.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "cmd"=>["apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y libsqlite3-dev", "echo \"gem 'sqlite3'\" >> Gemfile", "su discourse -`Preformatted text`c 'bundle config unset deployment'", "su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs 4 --without test development'"]}
discourse-doctorからは以下が出力されます。
Checking your domain name . . .
Connection to xxx succeeded.
You should probably remove any non-standard plugins and rebuild.
Attempting to restart existing container. . .
x86_64 arch detected.
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml
starting up existing container
+ /usr/bin/docker start app
Error response from daemon: driver failed programming external connectivity on endpoint app (c143632e34e1ae05e48759bdf163b4bbe5dc9aaf895f1fb7521f7e3784c26577): Error starting userland proxy: listen tcp 0.0.0.0:443: bind: address already in use
Error: failed to start containers: app
Failed to restart the container.
新規インストール以外に何かできることはありますか?
このトピックに移動しました @fidelio レポートをまとめておくためです。
「いいね!」 2
「意欲的なアマチュア」として、簡単な質問があります。
コンテナ内でCurlコマンドを実行するにはどうすればよいですか?
pfaffman
(Jay Pfaffman)
2023 年 1 月 30 日午後 12:21
11
@fidelio こんにちは。Discourseインスタンス内でSQLiteのような別のデータベースに接続する必要がありますか?つまり、別のフォーラムからデータをインポートしていますか?それ以外の場合は、その機能を無効にすることができ、通常のDiscourseアプリコンテナは正常に再構築されます。
pfaffman
(Jay Pfaffman)
2023 年 1 月 30 日午後 12:29
13
PG 13にアップグレードしておらず、pg12テンプレートを使用しているのではないでしょうか?それはいずれにしても解決すべき問題です。OSのアップグレードが必要であり、新しいVMへの移行が最善策である可能性が高いです。
「いいね!」 1
こんにちは、@rahim123 さん。現段階ではどちらも必要ありません。機能は無効にするにはどうすればよいですか?
@pfaffman ああ、彼のログが libsqlite3-dev のインストールを試みていたと不満を言っていたのが奇妙に思えただけです。それとも、Discourse は通常、何かでそれを使用しますか?
@fidelio 、/var/discourse/containers/app.yml ファイルの templates: セクションをここに貼り付けていただけますか? ファイルの下の方にあるパスワードは含めないようにしてください 。また、/var/discourse/discourse-doctor を実行すると、システムの構成方法に関する公開可能なレポートの生成に役立ちます。
「いいね!」 1
@rahim123 はい、こちらが discourse-doctor レポートです。
containers/app.yml を検出しました。
==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=community.bfs-filmeditor.de
SMTP_ADDRESS=in-v3.mailjet.com
DEVELOPER_EMAILS=xxx
SMTP_PASSWORD=xxx
SMTP_PORT=25
SMTP_USER_NAME=xxx
LETSENCRYPT_ACCOUNT_EMAIL=xxx
==================== DOCKER INFO ====================
DOCKER VERSION: Docker version 18.06.1-ce, build e68fc7a
DOCKER PROCESSES (docker ps -a)
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ce58652241d9 local_discourse/app “/sbin/boot” 2 weeks ago Up 14 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp app
8e6b8ec432b4 local_discourse/mail-receiver “/sbin/boot” 11 months ago Up 11 months 0.0.0.0:25->25/tcp mail-receiver
ce58652241d9 local_discourse/app “/sbin/boot” 2 weeks ago Up 14 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp app
Discourse コンテナ app は実行中です。
==================== PLUGINS ====================
- git clone https://github.com/discourse/docker_manager.git
- git clone https://github.com/davidtaylorhq/discourse-whos-online.git
- git clone https://github.com/gdpelican/babble.git
- git clone https://github.com/angusmcleod/discourse-quick-messages.git
- git clone https://github.com/angusmcleod/discourse-events.git
- git clone https://github.com/discourse/discourse-calendar.git
- git clone https://github.com/discourse/discourse-data-explorer.git
- git clone https://github.com/davidtaylorhq/discourse-telegram-notifications.git
WARNING:
非公式のプラグインが含まれているようです。
問題が発生している場合は、無効にしてから再構築してみてください。
公式リストについては https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb を参照してください。
========================================
community.bfs-filmeditor.de の Discourse バージョン: TYPO3 CMS
localhost の Discourse バージョン: TYPO3 CMS
==================== MEMORY INFORMATION ====================
RAM (MB): 4039
total used free shared buff/cache available
Mem: 3944 1272 1236 1067 1436 1364
Swap: 0 0 0
==================== DISK SPACE CHECK ====================
---------- OS Disk Space ----------
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 78G 60G 18G 78% /
---------- Container Disk Space ----------
Filesystem Size Used Avail Use% Mounted on
overlay 78G 60G 18G 78% /
/dev/vda1 78G 60G 18G 78% /shared
/dev/vda1 78G 60G 18G 78% /var/log
==================== DISK INFORMATION ====================
Disk /dev/vda: 80 GiB, 85899345920 bytes, 167772160 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: C1F9A1FE-534C-4DAC-9299-5CC180C29DCE
Device Start End Sectors Size Type
/dev/vda1 227328 167772126 167544799 79.9G Linux filesystem
/dev/vda14 2048 10239 8192 4M BIOS boot
/dev/vda15 10240 227327 217088 106M Microsoft basic data
Partition table entries are not in disk order.
==================== END DISK INFORMATION ====================
クイックメッセージは無効にしましたが、まだ削除していません。
参考までに、Babble はしばらくの間動作していなかったと思います。
Please note that this plugin is no longer maintained and will likely cause problems in its current state:
Babble is an simple, lightweight chat plugin for Discourse. It re-skins the existing topic view into a sidebar, allowing for quick conversations in your forum. Note the tag above - Babble has been tagged a “broken-plugin.”
[48%20AM]
Check out the demo site to see it in action, or view (and contribute to!) the code on Github . If you’d like to help translate Babble to your lan…
「いいね!」 3
discourse-doctor が有効なテンプレートを表示してくれると思っていたのですが、そうではないようです。これも投稿していただけますか?
「いいね!」 1
pfaffman
(Jay Pfaffman)
2023 年 1 月 30 日午後 1:14
19
そうではありません。良いアイデアのように思えますが、これが重要になったのは今回が初めてだと思います。
「いいね!」 1
GNU nano 2.9.3 containers/app.yml
this is the all-in-one, standalone Discourse Docker container template
After making changes to this file, you MUST rebuild
/var/discourse/launcher rebuild app
BE VERY CAREFUL WHEN EDITING!
YAML FILES ARE SUPER SUPER SENSITIVE TO MISTAKES IN WHITESPACE OR ALIGNMENT!
templates:
“templates/postgres.template.yml”
“templates/redis.template.yml”
“templates/web.template.yml”
“templates/web.ratelimited.template.yml”
Uncomment these two lines if you wish to add Lets Encrypt (https)
“templates/web.ssl.template.yml”
“templates/web.letsencrypt.ssl.template.yml”
“templates/import/mbox.template.yml”
which TCP/IP ports should this container expose?
If you want Discourse to share a port with another webserver like Apache or nginx,
expose:
“80:80” # http
“443:443” # https
params:
db_default_text_search_config: “pg_catalog.english”
Set db_shared_buffers to a max of 25% of the total memory.
will be set automatically by bootstrap based on detected RAM, or you can override
db_shared_buffers: “1024MB”
can improve sorting performance, but adds memory usage per-connection
#db_work_mem: “40MB”
Which Git revision should this container use? (default: tests-passed)
#version: tests-passed
env:
LANG: en_US.UTF-8
DISCOURSE_DEFAULT_LOCALE: en
How many concurrent web requests are supported? Depends on memory and CPU cores.
will be set automatically by bootstrap based on detected CPUs, or you can override
UNICORN_WORKERS: 4
これが問題だと思います。先頭に#を付けて、./launcher rebuild appを実行してみてください。
「いいね!」 2