如何将ASP.NET后端连接到Docker容器内的postgres数据库

x33g5p2x  于 2023-01-29  发布在  Docker
关注(0)|答案(1)|浏览(126)

我一直在尝试连接我的webapi内置在ASP.NET核心7.1到postgresql数据库。它是在一个docker容器内。然而,每次我运行docker-compose -f docke-compose.yml up,我得到以下错误:

Unhandled exception. System.Net.Sockets.SocketException (00000001, 11): Resource temporarily unavailable

我认为这意味着数据库连接出了问题,但我不知道如何修复它。

version: '3.8'

services:
  server:
    build: ./Test
    ports:
      - "8000:80"
    depends_on:
      - db
  
  db:
    container_name: db
    image: postgres:latest
    environment:
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=pass
      - POSTGRES_DB=data
    volumes:
      - pgdata:/var/lib/postgresql/data
    ports:
      - "1234:5432"
    networks:
      - db-network
  
networks:
  db-network:
    driver: bridge

volumes:
  pgdata:

这是我从后端得到的appsettings.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "ConnectionStrings": {
    "Data": "Host=db;Port=5432;Database=data;User ID=user;Password=pass"
  },
  "AllowedHosts": "*"
}

我试过更改连接字符串、密码和用户ID,但一直得到相同的错误。

des4xlb0

des4xlb01#

docker-compose.yml中删除网络(因此使用默认值)或将db-network添加到server

services:
  server:
    build: ./Test
    ports:
      - "8000:80"
    depends_on:
      - db
    networks:
      - db-network

相关问题