You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法运行PostgreSQL 17.4 Docker镜像的技术求助

JHipster PostgreSQL Docker 启动问题排查与解决

1. 根级别name字段错误的处理

你遇到的第一个错误是因为Docker Compose v3语法不支持根级别的name字段,而添加的version: '3.3'强制启用了v3模式。解决方式二选一:

  • 保留name: myapp并移除version: '3.3'(使用Compose v2原生语法)
  • 保留version: '3.3',通过命令行指定项目名:docker-compose -p myapp -f src/main/docker/postgresql.yml up

2. 内存不足与PostgreSQL路径错误的修复

调整Docker内存分配

Cannot allocate memory是Docker可用内存不足导致的,即使容器未启动,也可以在Docker Desktop设置中调整:

  • 打开Docker Desktop → 设置 → 资源 → 高级,将内存分配调整至至少2GB(推荐4GB)
  • 重启Docker后重新执行启动命令

降级PostgreSQL版本

PostgreSQL 17属于较新的大版本,可能与JHipster生成的配置存在兼容性问题,建议切换到官方推荐的稳定版本postgres:16-alpine(轻量镜像,资源占用更低),修改配置中的image字段:

image: postgres:16-alpine

完善环境变量配置

显式指定数据库名,避免默认逻辑可能出现的异常:

environment:
  - POSTGRES_USER=myapp
  - POSTGRES_DB=myapp
  - POSTGRES_HOST_AUTH_METHOD=trust

修复后的完整配置

version: '3.3'
services:
  postgresql:
    image: postgres:16-alpine
    volumes:
      - ~/volumes/jhipster/myapp/postgresql/:/var/lib/postgresql/data/
    environment:
      - POSTGRES_USER=myapp
      - POSTGRES_DB=myapp
      - POSTGRES_HOST_AUTH_METHOD=trust
    healthcheck:
      test: ['CMD-SHELL', 'pg_isready -U $${POSTGRES_USER}']
      interval: 5s
      timeout: 5s
      retries: 10
    ports:
      - 127.0.0.1:5432:5432

内存限制优化(可选)

如果内存仍然紧张,可以给容器添加内存限制:

services:
  postgresql:
    # ... 其他配置
    deploy:
      resources:
        limits:
          memory: 1G
        reservations:
          memory: 512M

执行启动命令时需添加兼容性参数:docker-compose --compatibility -f src/main/docker/postgresql.yml up

内容的提问来源于stack exchange,提问作者vic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 00:23:11