我正在尝试构建一个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: Error: Microsoft ODBC Driver 17 for SQL Server : Login timeout expired.
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : TCP Provider: Error code 0x2749.
Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online..The command '/bin/sh -c /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P myPassword -i auto-setup-db.sql' returned a non-zero code: 1
而且我不确定自己在做什么错,有人知道吗?
编辑:这是我的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的新手
最佳答案
尝试在文件路径周围添加双引号并使用完整路径。请参见示例。
。
。
。
1433号展览
运行mkdir -p / var / opt / mssql / database
WORKDIR / var / opt / mssql / database
COPY auto-setup-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”
关于sql-server - Docker:如何在SQL Server Dockerfile中运行SQL脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57714478/