Docker-Compose部署Apache/AGE与PostgreSQL遇AGE启动错误求助
解决Apache/AGE容器报错
age-server: not found的问题 问题根源
你误解了Apache/AGE的运行逻辑:AGE是PostgreSQL的扩展插件,并非独立的服务进程,不存在age-server这个可执行文件,所以你在command字段中指定的启动命令无法被找到,导致容器启动失败。
正确的Docker Compose配置方案
使用官方提供的已集成AGE的PostgreSQL镜像,替代单独的apache/age镜像,这样可以直接在PostgreSQL环境中启用AGE扩展。以下是调整后的完整配置:
version: '3' services: db: # 使用集成了Apache AGE的PostgreSQL镜像,可根据需求替换对应版本 image: apache/age:1.4.0-postgres15 container_name: myPostgresWithAge restart: always ports: - "5432:5432" # 若需使用AGE可视化工具,可开启此端口 # - "5555:5555" environment: POSTGRES_USER: postgresUser POSTGRES_PASSWORD: postgresPW POSTGRES_DB: postgresDB volumes: - db-data:/var/lib/postgresql/data volumes: db-data:
验证AGE是否正常运行
容器启动完成后,执行以下命令进入容器并连接PostgreSQL:
docker exec -it myPostgresWithAge psql -U postgresUser -d postgresDB
在psql交互终端中执行以下命令启用AGE扩展:
CREATE EXTENSION age; LOAD 'age'; SET search_path = ag_catalog, "$user", public;
如果没有报错输出,说明AGE已成功集成并可用。
补充说明
- 官方
apache/age镜像的定位是提供AGE扩展包,而非独立运行的服务容器,因此无法直接通过age-server命令启动。 - 镜像版本可按需选择,例如
apache/age:1.5.0-postgres16对应AGE 1.5.0版本与PostgreSQL 16环境。
内容的提问来源于stack exchange,提问作者Hassan Rehan
相关产品推荐
相关产品推荐

