Docker中PostgreSQL启动报错求助及已尝试排查方案
Docker容器运行PostgreSQL报错求助
每次启动PostgreSQL容器都会报错,导致无法使用数据库,严重阻碍开发流程。
已尝试多项排查步骤:验证Docker配置、检查端口映射冲突、确保PostgreSQL容器镜像为最新版本。
相关配置文件
docker-compose.yml
version: '3.8' services: # Node应用配置 # Docker Compose启动该容器时,会自动使用当前目录的Dockerfile进行配置 app: build: . depends_on: # 应用依赖数据库,确保数据库优先启动 - postgres ports: - '8080:8080' volumes: # 将当前项目目录映射到容器内的工作目录 - ./:/usr/src/app/ # node_modules 卷挂载的解决方案,避免本地node_modules被覆盖 - /usr/src/app/node_modules # PostgreSQL数据库容器配置 # 注意`postgres`这个名称很重要,Node应用中指定`host: "postgres"`时,会通过Docker网络解析到该容器地址 postgres: image: postgres:14.1-alpine restart: always environment: # 配置数据库连接所需的环境变量,Node应用会使用这些值连接数据库 - POSTGRES_USER=postgres - POSTGRES_PASSWORD=password - POSTGRES_DB=urbanize ports: # PostgreSQL标准端口映射 - '5432:5432' volumes: # PostgreSQL容器启动时会执行`docker-entrypoint-initdb.d`目录下的脚本,将本地初始化脚本挂载到该目录 - ./database-seed.sql:/docker-entrypoint-initdb.d/database-seed.sql
环境变量中的PostgreSQL连接字符串
POSTGRES_CONNECTION_STRING="postgresql://postgres:password@localhost:5432/urbanize"
Dockerfile
FROM node:18 WORKDIR /app COPY package.json yarn.lock ./ RUN yarn install COPY . . EXPOSE 5002 CMD ["yarn", "dev"]
报错截图

已尝试的解决步骤
- 在终端中终止postgres服务
- 登录Docker
- 修改postgres配置文件以允许所有端口连接
内容的提问来源于stack exchange,提问作者xAdvitya
相关产品推荐
相关产品推荐

