首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Docker上使用dbup部署Server数据库

在Docker上使用dbup部署Server数据库
EN

Stack Overflow用户
提问于 2021-02-03 02:56:10
回答 1查看 721关注 0票数 0

在我们公司,我们使用了几种更新数据库模型的方法。我们使用sqlproj和dacpacs,还有一个.net核心应用程序使用DbUp。我已经成功地使用了基于本文自动化-sql-server-2019-docker-部署的dacpac进行容器化。

现在我正在研究Db。有几个挑战我试着去解决,但我无法解决它们。

  1. 不过,我的第一个任务是在mcr.microsoft.com/mssql/server上生成一个dockerfile :2019--然后安装.net核心运行时并在sql容器中运行构建的dbup。很难让.net核心运行时运行--我似乎无法让它正常工作。
  2. 我试图使用docker构建一个规范的sql,并使用基本映像mcr.microsoft.com/dotnet/core/sdk:3.1作为构建并以这种方式连接到sql,运行dbUp。这里也不起作用,这是我的docker-compose.yml文件(抱歉,由于某种原因,我不能在这里正确地隐藏代码:

版本:"3.7“服务: ms-sql-server:

图片:mcr.microsoft.com/mssql/server:2019-最新端口:- "1477:1433“环境: SA_PASSWORD:"SuperFun!23”ACCEPT_EULA:"Y“dbup: build:.

depends_on:- ms-sql-server

在我的Dockerfile中,我调用db,但它不会连接到它

代码语言:javascript
复制
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /src
COPY ["/Sentinel.DbUp.csproj", "Sentinel.DbUp/"]
RUN dotnet restore "Sentinel.DbUp/Sentinel.DbUp.csproj"
WORKDIR "/src/Sentinel.DbUp"
COPY . .
RUN dotnet build "Sentinel.DbUp.csproj" -c Release -o /app
FROM build AS publish
RUN dotnet publish "Sentinel.DbUp.csproj" -c Release -o /app
RUN dotnet run Sentinel.DbUp --ConnectionString=Server=ms-sql-server,1477;Database=Sentinel_Local;User Id=sa;Password=SuperFun!23; --WithSeedOnce --EnsureDatabase --PerformUpgrade

我有两个错误

System.Data.SqlClient.SqlException (0x80131904):在建立到Server的连接时发生了与网络相关的或特定于实例的错误。找不到或无法访问服务器。 /bin/sh: 1: User: not /bin/sh: 1:-WithSeedOnce: not

根据我的研究,我认为当使用对接者映像之间的对接组合时,您可以引用ms-sql-server而不是本地主机。同样,在执行最后一个命令时,我如何附加多个参数?似乎

EN

回答 1

Stack Overflow用户

发布于 2021-02-03 06:17:01

因此,据我所知,有两件事会从页面上跳下来:

  • 在dockerfile中,生成映像时执行运行指令。在容器启动时执行入口点或命令指令。因此,启动DbUp的命令(我假设它是当前dockerfile中的最后一行)应该从RUN更改为entrypoint。
  • 使用“依赖于指令”并不意味着码头将在启动DbUp容器之前等待数据库准备就绪。这只意味着数据库容器将在启动DbUp之前启动。相反,您必须在代码中等待DB,或者使用包装器脚本,比如等待它。检查这里的文件
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66020591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档