news 2026/9/12 9:20:45

Ente 自托管报 post_start is not allowed 错误怎么解决(Docker Compose 版本问题)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ente 自托管报 post_start is not allowed 错误怎么解决(Docker Compose 版本问题)

Ente 自托管报 post_start is not allowed 错误怎么解决(Docker Compose 版本问题)

【免费下载链接】ente💚 End-to-end encrypted cloud for everything.项目地址: https://gitcode.com/GitHub_Trending/en/ente

当你用 Ente 的 quickstart 脚本或 Docker Compose 方式自托管 Ente 时,启动集群如果卡在:

validating compose.yaml: services.minio Additional property post_start is not allowed

说明 Docker 在解析compose.yaml时就失败了,集群根本没有启动。原因很具体:Ente 的 compose 文件(例如 quickstart 脚本生成的my-ente/compose.yaml,或仓库中的 server/config/compose.yaml)在minio服务上使用了post_start生命周期钩子来初始化 MinIO 的存储桶,而这个钩子要求 Docker Compose 版本 2.30.0 及以上(见 docs/docs/self-hosting/troubleshooting/docker.md)。安装要求文档 也明确写着:Ente 要求 Docker Compose 2.30 或更高版本,并且只支持docker compose命令,docker-compose已不再支持。

先确认你的 Docker Compose 版本

用下面的命令查看当前版本(这是 quickstart.sh 脚本检查版本时使用的同一命令):

docker compose version --short

如果输出小于 2.30.0,就是本文描述的问题。如果你还看到类似的错误:

services.postgres.healthcheck Additional property start_interval is not allowed

这是同一个根因——start_interval属性同样需要较新的 Docker Compose 版本,解法与下文相同。

主路径:升级 Docker Compose

文档给出的最简解决方案就是升级 Docker Compose 到 2.30.0+。升级完成后,按文档提示重启集群,让改动生效:

docker compose down docker compose up

docker compose down会停掉并移除当前项目(my-ente目录)的容器,docker compose up重新拉起,两个命令都只影响当前 compose 项目,不会删除数据卷。

无法升级时的替代方案:改用独立 provision 服务

如果环境限制让你无法升级 Docker Compose,文档给出了等价做法:从compose.yamlminio服务中删掉整个post_start钩子,然后新增一个minio-provision服务来完成同样的存储桶初始化:

minio-provision: image: minio/mc depends_on: - minio volumes: - minio-data:/data networks: - internal entrypoint: | sh -c ' #!/bin/sh while ! mc alias set h0 http://minio:3200 your_minio_user your_minio_pass do echo "waiting for minio..." sleep 0.5 done cd /data mc mb -p b2-eu-cen mc mb -p wasabi-eu-central-2-v3 mc mb -p scw-eu-fr-v3 '

该片段来自 docs/docs/self-hosting/troubleshooting/docker.md,放入services:之下。两个占位符需要替换成你的 MinIO 实际凭据:

  • your_minio_useryour_minio_pass替换为minio服务环境里的MINIO_ROOT_USER/MINIO_ROOT_PASSWORD的值。quickstart 脚本会在运行时生成这组凭据并写入my-ente/compose.yamlminio服务下,直接照抄那里的值即可;
  • 其余部分(minio-data卷、三个mc mb -p建桶命令)与post_start钩子执行的完全一致,不需要改动。

修改后同样执行docker compose downdocker compose up让新配置生效。

另外注意一个文档中记录的相邻问题:如果你的日志里反复出现Waiting for minio...,可能是 compose 文件里用了已废弃的mc config host h0 add命令,改成mc alias set h0即可(当前仓库里的 server/config/compose.yaml 已经使用mc alias set写法)。

验证集群已正常启动

启动后,post_start is not allowed的校验错误不再出现,容器依次拉起即为通过。quickstart 安装方式下还可以按 quickstart 文档 做一次 API 冒烟测试:

curl localhost:8080/ping

能收到响应说明 museum(API 服务)已正常运行;随后访问http://localhost:3000即可打开 Ente Photos 页面。

限制与边界

  • 上述替代方案只适用于 compose 文件本身使用的post_start钩子(即 quickstart 脚本或 Docker Compose 安装路径生成的文件);文档中未覆盖其他自定义拓扑。
  • 修改compose.yaml/museum.yaml后必须docker compose down+docker compose up才会生效,文档对此有明确提示。
  • 长期来看,Ente 的官方要求是 Docker Compose 2.30+(requirements 文档),删除post_start只是无法升级时的临时等价方案。

【免费下载链接】ente💚 End-to-end encrypted cloud for everything.项目地址: https://gitcode.com/GitHub_Trending/en/ente

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 9:18:54

微信客户触达机器人怎么做:节点触达完整指南

「微信客户触达机器人」要解决的是:该通知的人准时收到,不该打扰的人收不到。触达不是群发的马甲。个人号上,触达必须挂在 业务节点 上,并且可停、可对账。 触达和营销、客服的差别 客服:客户找上门,你要接…

作者头像 李华
网站建设 2026/9/12 9:18:22

外部群消息发送避坑指南:队列+回执才是关键

「企业微信消息接口」容易被理解成调一个 send 就结束。能上生产的用法是:分清消息类型、先入队、再用回执对账。 这篇只讲消息接口,不讲通讯录。 你要用的是哪一种消息接口 应用消息: 员工工作台卡片,官方接口成熟 内部群 webh…

作者头像 李华
网站建设 2026/9/12 9:15:59

PowerShell自动化提取MHTML附件技术详解

1. 项目概述:MHTML附件提取的自动化方案 MHTML(MIME HTML)作为网页存档的标准格式,能够将网页中的文本、图片、CSS等资源打包成单一文件。但在实际工作中,我们经常需要从这类复合文档中提取特定附件。传统的手动解压操…

作者头像 李华
网站建设 2026/9/12 9:15:35

图结构推荐系统:异构图构建与双路径推荐实现

简介:本资源是一套基于图神经网络的推荐系统实现方案,面向算法工程师、推荐系统学习者及高校相关专业学生,聚焦用户画像与商品标签融合建模这一核心问题。系统依托亚马逊真实交易数据集(含500万订单、200万商品及800万标签&#x…

作者头像 李华