是否可以在 dockerfile 中运行 sqlcmd?
首先我创建一个图层
FROM microsoft/mssql-server-windows-developer:2017-latest
Run Code Online (Sandbox Code Playgroud)
之后我接受 eula 并设置 sa 密码,如下所示:
ENV ACCEPT_EULA=Y
ENV SA_PASSWORD=VerySecret!
Run Code Online (Sandbox Code Playgroud)
这样做之后,我尝试执行一个简单的示例查询:
RUN sqlcmd -S "localhost" -U "SA" -P "VerySecret!" -Q "select name from master.dbo.sysdatabases"
Run Code Online (Sandbox Code Playgroud)
不幸的是,docker build 命令中断并显示错误消息“Sqlcmd: 'name from master.dbo.sysdatabases': Unexpected argument. Enter '-?' 求助。”
难道我做错了什么?
MS SQL 容器可以在使用它们的容器内针对它们运行 SQL 语句dockerfile。
我认为你的问题只是双引号被从你的RUN命令中删除。
我无法完全确定这是否是基于此 github 问题的错误,但转义它们\"可以解决它。
您还可以通过默认为可信连接来避免在 docker 文件中设置 SA 密码:
run sqlcmd -Q \"select name from master.dbo.sysdatabases\"
Run Code Online (Sandbox Code Playgroud)
这样,可以在容器运行时设置变量,如下所示:
docker run -e ACCEPT_EULA=Y -e SA_PASSWORD=bobleponge -p 1433:1433 <imageid>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14671 次 |
| 最近记录: |