Docker:在docker镜像之外启动一个mssql脚本

时间:2017-10-03 03:17:49

标签: sql-server linux docker

我一直试图在我的docker上运行一个MSSQL脚本,它总是失败...我的语法错误或者其他什么......我看过这篇帖子但它不起作用 Executing SQL scripts on docker container

docker exec mssql '/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P gitgood12345 -q </CRE.sql'

这返回了一个错误

rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:262: starting container process caused "exec: \"/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ************** -q </CRE.sql\": stat /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P AucMa1633485 -q </CRE.sql: no such file or directory"

我也试过这样的事情......

sudo docker exec -it mssql /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'gitgood12345' -q </CRE.sql

该命令返回给我这个错误,我不确定为什么......

Sqlcmd: '-q': Missing argument. Enter '-?' for help.

请帮帮我......第二种方法用来工作,我想我忘了一个参数或什么......

1 个答案:

答案 0 :(得分:2)

sqlcmd -q选项需要您要运行的命令的参数。您的示例是在标准输入上输入命令,请尝试不使用-q

docker exec mssql /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P gitgood12345 < /CRE.sql

引用所有内容会导致容器尝试执行一个名为/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P gitgood12345 -q </CRE.sql的二进制文件,该二进制文件不存在。