sql-server - Docker:如何在SQL Server Dockerfile中运行SQL脚本

标签 sql-server docker dockerfile sqlcmd

我正在尝试构建一个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/

相关文章:

sql - T-SQL 在一个查询中创建表和索引

sql - 为什么子查询中没有 "Invalid column name XYZ"错误;虽然列名不在子查询表中?

linux - Docker 注册表登录文件在哪里?

docker - 我应该如何选择正确的 Docker 镜像?

Docker-compose 卷不保存 Keycloak 的容器状态

sql - 将行转置为列并连接表

sql语句查询最后一条数据

docker - 无法让 google auth 在 docker 中工作以发布到 pubsub

docker - 我需要隐藏 Jenkins 日志中的参数

ubuntu - 在 Dockerfile 中安装 `lightdm` 会引发交互式键盘布局菜单