你好,
我尝试使用 ./launcher rebuild app 更新 Discourse,参考了 Manually update Discourse and Docker image to latest
但遇到了 ENOENT 错误。
我执行了以下命令来改善这种情况:
dpkg-reconfigure -plow unattended-upgrades
apt-get update
apt-get dist-upgrade
wget -qO- https://get.docker.com/ | sh
但错误仍然存在。
我无法解决这个问题。![]()
日志如下:
dstest:/var/discourse$ sudo ./launcher rebuild app
确保启动器是最新的
正在获取 origin
启动器已是最新版本
正在停止旧容器
+ /usr/bin/docker stop -t 60 app
app
cd /pups && git pull && /pups/bin/pups --stdin
已是最新版本。
I, [2020-11-13T07:34:54.569773 #1] INFO -- : 正在加载 --stdin
I, [2020-11-13T07:34:54.576058 #1] INFO -- :
I, [2020-11-13T07:34:54.576810 #1] INFO -- : > locale-gen $LANG && update-locale
I, [2020-11-13T07:34:54.676810 #1] INFO -- : 正在生成语言环境(这可能需要一些时间)...
生成完成。
I, [2020-11-13T07:34:54.677475 #1] INFO -- : > mkdir -p /shared/postgres_run
I, [2020-11-13T07:34:54.702215 #1] INFO -- :
I, [2020-11-13T07:34:54.703054 #1] INFO -- : > chown postgres:postgres /shared/postgres_run
I, [2020-11-13T07:34:54.712895 #1] INFO -- :
I, [2020-11-13T07:34:54.713681 #1] INFO -- : > chmod 775 /shared/postgres_run
I, [2020-11-13T07:34:54.717105 #1] INFO -- :
I, [2020-11-13T07:34:54.717680 #1] INFO -- : > rm -fr /var/run/postgresql
I, [2020-11-13T07:34:54.719943 #1] INFO -- :
I, [2020-11-13T07:34:54.720466 #1] INFO -- : > ln -s /shared/postgres_run /var/run/postgresql
I, [2020-11-13T07:34:54.723863 #1] INFO -- :
I, [2020-11-13T07:34:54.724449 #1] INFO -- : > socat /dev/null UNIX-CONNECT:/shared/postgres_run/.s.PGSQL.5432 || exit 0 && echo postgres already running stop container ; exit 1
2020/11/13 07:34:54 socat[27] E connect(6, AF=1 "/shared/postgres_run/.s.PGSQL.5432", 36): 没有那个文件或目录
I, [2020-11-13T07:34:54.791451 #1] INFO -- :
I, [2020-11-13T07:34:54.791940 #1] INFO -- : > rm -fr /shared/postgres_run/.s*
I, [2020-11-13T07:34:54.795116 #1] INFO -- :
I, [2020-11-13T07:34:54.795545 #1] INFO -- : > rm -fr /shared/postgres_run/*.pid
I, [2020-11-13T07:34:54.798154 #1] INFO -- :
I, [2020-11-13T07:34:54.798578 #1] INFO -- : > mkdir -p /shared/postgres_run/12-main.pg_stat_tmp
I, [2020-11-13T07:34:54.800772 #1] INFO -- :
I, [2020-11-13T07:34:54.801357 #1] INFO -- : > chown postgres:postgres /shared/postgres_run/12-main.pg_stat_tmp
I, [2020-11-13T07:34:54.803400 #1] INFO -- :
I, [2020-11-13T07:34:54.807557 #1] INFO -- : 文件 > /etc/service/postgres/run chmod: +x chown:
I, [2020-11-13T07:34:54.811426 #1] INFO -- : 文件 > /etc/service/postgres/log/run chmod: +x chown:
I, [2020-11-13T07:34:54.815457 #1] INFO -- : 文件 > /etc/runit/3.d/99-postgres chmod: +x chown:
I, [2020-11-13T07:34:54.819414 #1] INFO -- : 文件 > /root/upgrade_postgres chmod: +x chown:
I, [2020-11-13T07:34:54.820021 #1] INFO -- : > chown -R root /var/lib/postgresql/12/main
I, [2020-11-13T07:34:58.099992 #1] INFO -- :
I, [2020-11-13T07:34:58.100865 #1] INFO -- : > [ ! -e /shared/postgres_data ] && install -d -m 0755 -o postgres -g postgres /shared/postgres_data && sudo -E -u postgres /usr/lib/postgresql/12/bin/initdb -D /shared/postgres_data || exit 0
I, [2020-11-13T07:34:58.103259 #1] INFO -- :
I, [2020-11-13T07:34:58.103633 #1] INFO -- : > chown -R postgres:postgres /shared/postgres_data
I, [2020-11-13T07:34:58.125185 #1] INFO -- :
I, [2020-11-13T07:34:58.125939 #1] INFO -- : > chown -R postgres:postgres /var/run/postgresql
I, [2020-11-13T07:34:58.128600 #1] INFO -- :
I, [2020-11-13T07:34:58.129158 #1] INFO -- : > /root/upgrade_postgres
I, [2020-11-13T07:34:58.133295 #1] INFO -- :
I, [2020-11-13T07:34:58.133708 #1] INFO -- : > rm /root/upgrade_postgres
I, [2020-11-13T07:34:58.135503 #1] INFO -- :
I, [2020-11-13T07:34:58.136036 #1] INFO -- : 将 data_directory = '/var/lib/postgresql/12/main' 替换为 data_directory = '/shared/postgres_data' 在 /etc/postgresql/12/main/postgresql.conf 中
I, [2020-11-13T07:34:58.136723 #1] INFO -- : 将 (?-mix:#?listen_addresses *=.*) 替换为 listen_addresses = '*' 在 /etc/postgresql/12/main/postgresql.conf 中
I, [2020-11-13T07:34:58.137998 #1] INFO -- : 将 (?-mix:#?synchronous_commit *=.*) 替换为 synchronous_commit = $db_synchronous_commit 在 /etc/postgresql/12/main/postgresql.conf 中
I, [2020-11-13T07:34:58.138960 #1] INFO -- : 将 (?-mix:#?shared_buffers *=.*) 替换为 shared_buffers = $db_shared_buffers 在 /etc/postgresql/12/main/postgresql.conf 中
I, [2020-11-13T07:34:58.139939 #1] INFO -- : 将 (?-mix:#?work_mem *=.*) 替换为 work_mem = $db_work_mem 在 /etc/postgresql/12/main/postgresql.conf 中
I, [2020-11-13T07:34:58.140867 #1] INFO -- : 将 (?-mix:#?default_text_search_config *=.*) 替换为 default_text_search_config = '$db_default_text_search_config' 在 /etc/postgresql/12/main/postgresql.conf 中
I, [2020-11-13T07:34:58.141833 #1] INFO -- :
I, [2020-11-13T07:34:58.144916 #1] INFO -- : > install -d -m 0755 -o postgres -g postgres /shared/postgres_backup
I, [2020-11-13T07:34:58.145559 #1] INFO -- :
I, [2020-11-13T07:34:58.146076 #1] INFO -- : 将 (?-mix:#?checkpoint_segments *=.*) 替换为 checkpoint_segments = $db_checkpoint_segments 在 /etc/postgresql/12/main/postgresql.conf 中
I, [2020-11-13T07:34:58.147118 #1] INFO -- : 将 (?-mix:#?logging_collector *=.*) 替换为 logging_collector = $db_logging_collector 在 /etc/postgresql/12/main/postgresql.conf 中
I, [2020-11-13T07:34:58.147118 #1] INFO -- : 将 (?-mix:#?log_min_duration_statement *=.*) 替换为 log_min_duration_statement = $db_log_min_duration_statement 在 /etc/postgresql/12/main/postgresql.conf 中
I, [2020-11-13T07:34:58.162784 #1] INFO -- : 将 (?-mix:^#local +replication +postgres +peer$) 替换为 local replication postgres peer 在 /etc/postgresql/12/main/pg_hba.conf 中
I, [2020-11-13T07:34:58.163691 #1] INFO -- : 将 (?-mix:^host.*all.*all.*127.*$) 替换为 host all all 0.0.0.0/0 md5 在 /etc/postgresql/12/main/pg_hba.conf 中
I, [2020-11-13T07:34:58.164784 #1] INFO -- : > HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/12/bin/postmaster -D /etc/postgresql/12/main
I, [2020-11-13T07:34:58.166947 #1] INFO -- : > sleep 5
2020-11-13 07:34:58.208 UTC [50] LOG: 正在启动 PostgreSQL 12.4 (Debian 12.4-1.pgdg100+1),运行在 x86_64-pc-linux-gnu 上,由 gcc (Debian 8.3.0-6) 8.3.0 编译,64 位
2020-11-13 07:34:58.208 UTC [50] LOG: 正在监听 IPv4 地址 "0.0.0.0",端口 5432
2020-11-13 07:34:58.209 UTC [50] LOG: 正在监听 IPv6 地址 "::",端口 5432
2020-11-13 07:34:58.218 UTC [50] LOG: 正在监听 Unix 套接字 "/var/run/postgresql/.s.PGSQL.5432"
2020-11-13 07:34:58.302 UTC [53] LOG: 数据库系统在 2020-11-13 07:23:18 UTC 关闭
2020-11-13 07:34:58.321 UTC [50] LOG: 数据库系统已准备好接受连接
I, [2020-11-13T07:35:03.209924 #1] INFO -- :
I, [2020-11-13T07:35:03.222141 #1] INFO -- : > su postgres -c 'createdb discourse' || true
2020-11-13 07:35:03.575 UTC [63] postgres@postgres ERROR: 数据库 "discourse" 已存在
2020-11-13 07:35:03.575 UTC [63] postgres@postgres STATEMENT: CREATE DATABASE discourse;
createdb: 错误:数据库创建失败:ERROR: 数据库 "discourse" 已存在
I, [2020-11-13T07:35:03.578465 #1] INFO -- :
I, [2020-11-13T07:35:03.578976 #1] INFO -- : > su postgres -c 'psql discourse -c "create user discourse;"' || true
2020-11-13 07:35:03.644 UTC [74] postgres@discourse ERROR: 角色 "discourse" 已存在
2020-11-13 07:35:03.644 UTC [74] postgres@discourse STATEMENT: create user discourse;
ERROR: 角色 "discourse" 已存在
I, [2020-11-13T07:35:03.646897 #1] INFO -- :
I, [2020-11-13T07:35:03.647407 #1] INFO -- : > su postgres -c 'psql discourse -c "grant all privileges on database discourse to discourse;"' || true
I, [2020-11-13T07:35:03.711432 #1] INFO -- : GRANT
I, [2020-11-13T07:35:03.712171 #1] INFO -- : > su postgres -c 'psql discourse -c "alter schema public owner to discourse;"'
I, [2020-11-13T07:35:03.782199 #1] INFO -- : ALTER SCHEMA
I, [2020-11-13T07:35:03.782901 #1] INFO -- : > su postgres -c 'psql template1 -c "create extension if not exists hstore;"'
NOTICE: 扩展 "hstore" 已存在,跳过
I, [2020-11-13T07:35:03.847761 #1] INFO -- : CREATE EXTENSION
I, [2020-11-13T07:35:03.848327 #1] INFO -- : > su postgres -c 'psql template1 -c "create extension if not exists pg_trgm;"'
NOTICE: 扩展 "pg_trgm" 已存在,跳过
I, [2020-11-13T07:35:03.909805 #1] INFO -- : CREATE EXTENSION
I, [2020-11-13T07:35:03.910376 #1] INFO -- : > su postgres -c 'psql discourse -c "create extension if not exists hstore;"'
NOTICE: 扩展 "hstore" 已存在,跳过
I, [2020-11-13T07:35:03.972494 #1] INFO -- : CREATE EXTENSION
I, [2020-11-13T07:35:03.973165 #1] INFO -- : > su postgres -c 'psql discourse -c "create extension if not exists pg_trgm;"'
NOTICE: 扩展 "pg_trgm" 已存在,跳过
I, [2020-11-13T07:35:04.035738 #1] INFO -- : CREATE EXTENSION
I, [2020-11-13T07:35:04.036418 #1] INFO -- : > sudo -u postgres psql discourse
I, [2020-11-13T07:35:04.055691 #1] INFO -- : update pg_database set encoding = pg_char_to_encoding('UTF8') where datname = 'discourse' AND encoding = pg_char_to_encoding('SQL_ASCII');
I, [2020-11-13T07:35:04.147941 #1] INFO -- : 文件 > /var/lib/postgresql/take-database-backup chmod: +x chown: postgres:postgres
I, [2020-11-13T07:35:04.150956 #1] INFO -- : 文件 > /var/spool/cron/crontabs/postgres chmod: chown:
I, [2020-11-13T07:35:04.151502 #1] INFO -- : > echo postgres installed!
I, [2020-11-13T07:35:04.167002 #1] INFO -- : postgres 已安装!
I, [2020-11-13T07:35:04.172330 #1] INFO -- : 文件 > /etc/service/redis/run chmod: +x chown:
I, [2020-11-13T07:35:04.176723 #1] INFO -- : 文件 > /etc/service/redis/log/run chmod: +x chown:
I, [2020-11-13T07:35:04.181121 #1] INFO -- : 文件 > /etc/runit/3.d/10-redis chmod: +x chown:
I, [2020-11-13T07:35:04.182910 #1] INFO -- : 将 daemonize yes 替换为 在 /etc/redis/redis.conf 中
I, [2020-11-13T07:35:04.183837 #1] INFO -- : 将 (?-mix:^pidfile.*$) 替换为 在 /etc/redis/redis.conf 中
I, [2020-11-13T07:35:04.185609 #1] INFO -- : > install -d -m 0755 -o redis -g redis /shared/redis_data
I, [2020-11-13T07:35:04.225330 #1] INFO -- :
I, [2020-11-13T07:35:04.226369 #1] INFO -- : 将 (?-mix:^logfile.*$) 替换为 logfile "" 在 /etc/redis/redis.conf 中
I, [2020-11-13T07:35:04.227109 #1] INFO -- : 将 (?-mix:^bind .*$) 替换为 在 /etc/redis/redis.conf 中
I, [2020-11-13T07:35:04.229259 #1] INFO -- : 将 (?-mix:^dir .*$) 替换为 dir /shared/redis_data 在 /etc/redis/redis.conf 中
I, [2020-11-13T07:35:04.230796 #1] INFO -- : 将 (?-mix:^protected-mode yes) 替换为 protected-mode no 在 /etc/redis/redis.conf 中
I, [2020-11-13T07:35:04.232306 #1] INFO -- : 将 # io-threads 4 替换为 io-threads $redis_io_threads 在 /etc/redis/redis.conf 中
I, [2020-11-13T07:35:04.233981 #1] INFO -- : > echo redis installed
I, [2020-11-13T07:35:04.236684 #1] INFO -- : redis 已安装
I, [2020-11-13T07:35:04.237270 #1] INFO -- : > cat /etc/redis/redis.conf | grep logfile
I, [2020-11-13T07:35:04.263966 #1] INFO -- : logfile ""
I, [2020-11-13T07:35:04.264740 #1] INFO -- : > exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf
I, [2020-11-13T07:35:04.266909 #1] INFO -- : > sleep 10
167:C 13 Nov 2020 07:35:04.374 # oO0OoO0OoO0Oo Redis 正在启动 oO0OoO0OoO0Oo
167:C 13 Nov 2020 07:35:04.375 # Redis 版本=5.0.9, bits=64, commit=00000000, modified=0, pid=167, 刚刚启动
167:C 13 Nov 2020 07:35:04.375 # 已加载配置
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 5.0.9 (00000000/0) 64 位
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) 以独立模式运行
|`-._`-...-` __...-.``-._|'` _.-'| 端口:6379
| `-._ `._ / _.-' | PID: 167
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
167:M 13 Nov 2020 07:35:04.379 # 警告:TCP backlog 设置为 511 无法强制执行,因为 /proc/sys/net/core/somaxconn 被设置为较低的值 128。
167:M 13 Nov 2020 07:35:04.379 # 服务器已初始化
167:M 13 Nov 2020 07:35:04.379 # 警告:您的内核中启用了透明大页(THP)支持。这将导致 Redis 出现延迟和内存使用问题。要修复此问题,请以 root 身份运行命令 'echo never > /sys/kernel/mm/transparent_hugepage/enabled',并将其添加到 /etc/rc.local 中以便在重启后保留该设置。必须在禁用 THP 后重启 Redis。
167:M 13 Nov 2020 07:35:04.498 * 从磁盘加载数据库:0.118 秒
167:M 13 Nov 2020 07:35:04.498 * 已准备好接受连接
I, [2020-11-13T07:35:14.270726 #1] INFO -- :
I, [2020-11-13T07:35:14.271660 #1] INFO -- : 正在终止异步进程
I, [2020-11-13T07:35:14.271971 #1] INFO -- : 向 HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/12/bin/postmaster -D /etc/postgresql/12/main pid: 50 发送 INT
I, [2020-11-13T07:35:14.272236 #1] INFO -- : 向 exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 167 发送 TERM
2020-11-13 07:35:14.272 UTC [50] LOG: 收到快速关闭请求
167:signal-handler (1605252914) 收到 SIGTERM,计划关闭...
2020-11-13 07:35:14.276 UTC [50] LOG: 中止任何活动事务
2020-11-13 07:35:14.278 UTC [50] LOG: 后台工作进程 "logical replication launcher" (PID 59) 以退出代码 1 退出
2020-11-13 07:35:14.283 UTC [54] LOG: 正在关闭
2020-11-13 07:35:14.312 UTC [50] LOG: 数据库系统已关闭
167:M 13 Nov 2020 07:35:14.331 # 用户请求关闭...
167:M 13 Nov 2020 07:35:14.331 * 在退出前保存最终 RDB 快照
167:M 13 Nov 2020 07:35:14.369 * 数据库已保存到磁盘
167:M 13 Nov 2020 07:35:14.370 # Redis 现在已准备好退出,再见...
失败
--------------------
Errno::ENOENT: 没有那个文件或目录 @ rb_sysopen - /usr/local/etc/ImageMagick-6/policy.xml
失败位置:/pups/lib/pups/replace_command.rb:8:in `read'
替换失败,参数为 {"filename"=>"/usr/local/etc/ImageMagick-6/policy.xml", "from"=>"<policymap>", "to"=>"<policymap>\n <policy domain=\"coder\" rights=\"none\" pattern=\"EPHEMERAL\" />\n <policy domain=\"coder\" rights=\"none\" pattern=\"URL\" />\n <policy domain=\"coder\" rights=\"none\" pattern=\"HTTPS\" />\n <policy domain=\"coder\" rights=\"none\" pattern=\"MVG\" />\n <policy domain=\"coder\" rights=\"none\" pattern=\"MSL\" />\n <policy domain=\"coder\" rights=\"none\" pattern=\"TEXT\" />\n <policy domain=\"coder\" rights=\"none\" pattern=\"SHOW\" />\n <policy domain=\"coder\" rights=\"none\" pattern=\"WIN\" />\n <policy domain=\"coder\" rights=\"none\" pattern=\"PLT\" />\n"}
8a2b7a84ea2ce73e8438d1a8ba1209227b633c0797880d18ca3b5e49d60f1007
** 引导失败 ** 请向上滚动并查找早期的错误消息,可能不止一条。
./discourse-doctor 可能有助于诊断问题。