【发布时间】:2021-09-06 07:33:56
【问题描述】:
这是我的docker-compose.yml 文件:
version: "3.9"
services:
api:
image: nefcanto/dotnet-dev
restart: always
container_name: DotNetApi
working_dir: /Api
environment:
- HolismProjectsRoot=/HolismDotNet
volumes:
- /HolismDotNet/Framework:/HolismDotNet/Framework
- /HolismDotNet/Api:/HolismDotNet/Api
- .:/Api
ports:
- "5000:5000"
command: >
sh -c
"
dotnet build
&& dotnet Api/bin/Holism.Geo.Api.dll
"
depends_on:
- "sql"
sql:
image: mcr.microsoft.com/mssql/server:2019-latest
restart: always
container_name: Sql
volumes:
- ./Database:/var/opt/mssql
environment:
- ACCEPT_EULA=Y
- SA_PASSWORD=lksU2o412f7tBj58t07B
- MSSQL_PID=Express
ports:
- 1433:1433
command: >
sh -c
"
tail -f /dev/null
"
如您所见,我正在开发.NET Core 应用程序,并且创建了两个容器。
这是我的应用使用的连接字符串:
data source=sql,1433; initial catalog=Geo; user id=sa; password=password_here
我使用sql 和Sql 进行了测试。但是我的应用容器没有看到我的数据库容器。
我在 linux 上,我可以使用交互式 shell 连接到我的数据库。
docker exec -it DotNetApi sh -c
# /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P password_here
> select newid();
> go;
------------------------------------
2FCD5E38-B526-4B76-AB74-A8DF9971D103
(1 rows affected)
我该怎么办?
【问题讨论】:
-
要通信的服务器的名字应该是服务的名字。在这种情况下,您应该尝试将
localhost替换为sql
标签: sql-server docker .net-core containers