Sql server 无法访问停靠的mssql服务器

Sql server 无法访问停靠的mssql服务器,sql-server,docker,.net-core,Sql Server,Docker,.net Core,我正在尝试将两个.NETCore3.1服务(我的api和db)对接。 我的数据库服务使用的是mssql数据库,我正在使用下面的脚本创建实际的数据库insi de容器 docker-compose up --build 服务已启动并正在运行,但当我使用api服务访问db时 使用与服务器“my db”上的数据库“mydatabase”的连接时出错 docker compose.yml version: '3.0' services: my-db: build: ./Data/Dock

我正在尝试将两个.NETCore3.1服务(我的api和db)对接。 我的数据库服务使用的是mssql数据库,我正在使用下面的脚本创建实际的数据库insi de容器

docker-compose up --build
服务已启动并正在运行,但当我使用api服务访问db时 使用与服务器“my db”上的数据库“mydatabase”的连接时出错

docker compose.yml

version: '3.0' 
services:
  my-db:
    build: ./Data/Docker
  my-api:
    ports: 
      - "8080:5000"         
    depends_on: 
      - my-db
   ... ommited for clarity
CREATE DATABASE [mydatabase] 
GO
USE [mydatabase]
GO
数据/Docker

FROM mcr.microsoft.com/mssql/server:2017-CU17-ubuntu
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app    
COPY . /usr/src/app    
RUN chmod +x /usr/src/app/run-initialization.sh    
ENV SA_PASSWORD pass
ENV ACCEPT_EULA Y
ENV MSSQL_PID Express    
EXPOSE 1433    
CMD /bin/bash ./entrypoint.sh
entrypoint.sh

/usr/src/app/run-initialization.sh & /opt/mssql/bin/sqlservr
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P pass -d master -i create-database.sql
运行初始化.sh

/usr/src/app/run-initialization.sh & /opt/mssql/bin/sqlservr
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P pass -d master -i create-database.sql
创建数据库.sql

version: '3.0' 
services:
  my-db:
    build: ./Data/Docker
  my-api:
    ports: 
      - "8080:5000"         
    depends_on: 
      - my-db
   ... ommited for clarity
CREATE DATABASE [mydatabase] 
GO
USE [mydatabase]
GO

像这样更改
entrypoint.sh

/opt/mssql/bin/sqlservr & sleep 10 & /usr/src/app/run-initialization.sh
  • /opt/mssql/bin/sqlservr
    启动SQL server
  • 睡眠10
    等待10秒
  • /usr/src/app/run initialization.sh
    执行run-initialization.sh,它连接到SQL Server并创建数据库

    • 连接字符串中有什么

      据我记忆所及,在compose中需要将dbserver名称与您的db名称匹配,因此在您的情况下:
      my db

      SQL server服务需要一些时间才能启动,因此我建议在
      run initialization.sh中尝试连接到数据库之前添加10秒钟的睡眠时间。请使用/opt/mssql tools/bin/sqlcmd sleep 10-S localhost-U sa-p pass-d master-I create-database.SQL尝试使用/opt/mssql-tools/bin/sqlcmd sleep 10-S localhost-U sa-p pass-d master-I create-database.SQL,但我也遇到了同样的问题。我做错什么了吗?