【问题标题】:Docker: How to run a sql script in SQL Server DockerfileDocker:如何在 SQL Server Dockerfile 中运行 sql 脚本
【发布时间】:2020-01-02 23:37:26
【问题描述】:

我正在尝试构建一个 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:错误:Microsoft ODBC Driver 17 for SQL Server:登录超时已过期。
Sqlcmd:错误:Microsoft ODBC Driver 17 for SQL Server:TCP 提供程序:错误代码 0x2749。
Sqlcmd:错误:Microsoft ODBC Driver 17 for SQL Server:建立与 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

而且我不确定我做错了什么,有人知道吗?

编辑:这是我的 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 很陌生

【问题讨论】:

标签: sql-server docker dockerfile sqlcmd


【解决方案1】:

尝试在文件路径周围添加双引号并使用完整路径。请看示例。

。 . . 暴露1433

运行 mkdir -p /var/opt/mssql/database

WORKDIR /var/opt/mssql/database

复制自动设置-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"

【讨论】:

    猜你喜欢
    • 2018-12-05
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    • 2019-07-13
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    相关资源
    最近更新 更多