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

Docker-Compose环境下Flask+SQLAlchemy连接PostgreSQL配置问题

解决Docker Compose下Flask+SQLAlchemy连接PostgreSQL的问题

1. 修改SQLAlchemy连接字符串

找到你代码里创建engine的那行代码,把连接地址中的localhost替换为docker-compose.yml里定义的数据库服务名db:

engine = create_engine('postgresql://postgres:[mypassword]@db:5432/employee-manager-db')

在Docker Compose的默认网络环境中,各个服务可以通过服务名直接访问,容器内的localhost指向容器自身,无法访问宿主机的数据库服务,所以必须用服务名db作为主机地址。

2. 补充PostgreSQL服务的初始化环境变量

postgres镜像需要指定初始化参数才能正常创建数据库,你需要在docker-compose.yml的db服务中添加environment配置,参数要和连接字符串保持一致:

version: '3.8'
services:
  backend:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - 8000:8000
    volumes:
      - .:/app
    depends_on:
      - db

  db:
    image: postgres:14.5
    restart: always
    expose:
      - '5432'
    volumes:
      - .dbdata:/var/lib/postgresql
    ports:
      - '5432:5432'
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: [mypassword]  # 替换为你实际使用的密码
      POSTGRES_DB: employee-manager-db

3. 重启服务

修改完成后,执行以下命令重新构建并启动服务:

docker-compose down
docker-compose up --build

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 14:15:44