Sql server 无法访问停靠的mssql服务器
我正在尝试将两个.NETCore3.1服务(我的api和db)对接。 我的数据库服务使用的是mssql数据库,我正在使用下面的脚本创建实际的数据库insi de容器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
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
启动SQL server/opt/mssql/bin/sqlservr
等待10秒睡眠10
执行run-initialization.sh,它连接到SQL Server并创建数据库/usr/src/app/run initialization.sh
- 连接字符串中有什么
据我记忆所及,在compose中需要将dbserver名称与您的db名称匹配,因此在您的情况下:
my dbSQL 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,但我也遇到了同样的问题。我做错什么了吗?