我试图构建一个SQL Server容器,然后运行一些SQL脚本来添加用户并通过使用docker build .
和更高版本的docker-compose build
-> docker-compose up
FROM mcr.microsoft.com/mssql/server
COPY all.sql all.sql
COPY auto-setup-db.sql auto-setup-db.sql
RUN /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P myPassword -i auto-setup-db.sql
此行^失败,显示:
Sqlcmd:错误:SQL Server的Microsoft ODBC驱动程序17:登录超时已到期。
Sqlcmd:错误:SQL Server的Microsoft ODBC驱动程序17:TCP提供程序:错误代码0x2749。
Sqlcmd:错误:SQL Server的Microsoft ODBC驱动程序17:建立与SQL Server的连接时发生了与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。检查实例名称是否正确以及SQL Server是否配置为允许远程连接。有关更多信息,请参见SQL Server联机丛书。命令'/ bin / sh -c / opt / mssql-tools / bin / sqlcmd -S localhost -U sa -P myPassword -i auto-setup-db.sql'返回了非零代码:1 < / p>
我不确定自己在做错什么,有人知道吗?
编辑:这是我的docker-compose文件的相关部分:
version: '3'
services:
mssql:
image: mssql
build: ./e2e/mssql
container_name: mssql
environment:
SA_PASSWORD: "myPassword"
ACCEPT_EULA: "Y"
编辑2:
运行docker-compose up
从SQL Server ex获得很多输出。
2019-08-29 17:05:13.02 spid8s Starting up database 'tempdb'.
但是我需要找到一种在其中运行模式脚本的方法,因此我认为docker-build是最简单的地方。我是Docker的新手
答案 0 :(得分:0)
尝试在文件路径周围添加双引号并使用完整路径。请参见示例。
。 。 。 展览1433
运行mkdir -p / var / opt / mssql / database
WORKDIR / var / opt / mssql / database
COPY自动设置db.sql。
CMD / opt / mssql-tools / bin / sqlcmd -S localhost,1433 -U SA -P myPassword -i“ /var/opt/mssql/database/auto-setup-db.sql” -o“ / var /opt/mssql/database/auto-setup-db.log“