我正在尝试使用MSSQL DB创建自己的Docker镜像以进行开发.它基于microsoft / mssql-server-linux映像.在构建期间,我想将一些.sql文件复制到容器中,然后运行这些脚本(创建数据库模式,表,插入一些数据等).我的Dockerfile看起来像这样:

# use MSSQL 2017 image on Ubuntu 16.04

FROM microsoft/mssql-server-linux:2017-latest

# create directory within SQL container for database files

RUN mkdir -p /opt/mssql-scripts

# copy the database files from host to container

COPY sql/000_create_db.sql /opt/mssql-scripts

# set environment variables

ENV MSSQL_SA_PASSWORD=P@ssw0rd

ENV ACCEPT_EULA=Y

# run initial scripts

RUN /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'P@ssw0rd' -i /opt/mssql-scripts/000_create_db.sql

在我看来,000_create_db.sql的内容并不重要.

真正的问题是当我尝试使用命令docker build -t demo构建这个Dockerfile时.我总是得到这些错误:

Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : Login timeout expired.

Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : TCP Provider: Error code 0x2749.

Sqlcmd: Error: Microsoft ODBC Driver 13 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..

但是当我删除最后一个命令(运行初始脚本)时,构建并运行图像,并调用相同的命令:

docker build -t demo .

docker run -p 1433:1433 --name mssql -d demo

docker exec -it mssql "bash"

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'P@ssw0rd' -i /opt/mssql-scripts/000_create_db.sql

一切都进展顺利.为什么我不能从Dockefile运行脚本?

docker 启动sqlserver_Docker mssql-server-linux:如何在构建期间启动.sql文件(来自Dockerfile)...相关推荐

  1. linux下制作windows启动盘,行家里手:Linux使用WoeUSB制作Windows启动盘

    Linux 下制作启动 U 盘的工具实在是很多,要是不熟悉三个以上的启动盘制作工具,你都不好意思说你会折腾 Linux!虽是玩笑话,但是各类系统 ISO 结构不一,各类电脑引导方式也有区别,因此,Li ...

  2. 解决Ubuntu系统下启动root账户后Linux版本edge浏览器无法启动

    最近安装了Ubuntu双系统,原本在Windows上使用的是edge浏览器,没想到edge还有Linux的dev版本,兴高采烈的安装后发现root用户不能正常启动edge,这里记录下解决办法. ps: ...

  3. kali linux安装到U盘 无法启动,vmware 安装 kali linux 系统到U盘 启动错误(initramfs:) 修复方法...

    安装kalilinux到U盘 启动之后出现这个错误: 这是grub路径不对. 解决办法: 在这模式下可以输入命令:blkid 查看所列举出的磁盘 找到你的U盘系统 TYPE="ext4&qu ...

  4. Linux启动shell的快捷方式,Linux下为可执行shell脚本文件(.sh),制作桌面启动快捷方式...

    自装软件默认安装目录为 /usr/local,而生成的应用程序可执行图标(文件)放置在/usr/local/share/applications 目录下,以XXX.desktop 文件形式存在.以xx ...

  5. linux命令 将数据库表导出sql文件 mysqldump

    mysqldump 命令 首先在有没navicat和其他的可视化的简易转换工具的帮助下,我们可以使用linux命令来完成导出的任务. //将本地数据库ssm中user表导出到~/area1.sql用r ...

  6. 8万行的insert数据,Ctrl+c、Ctrl+v后心态崩了(如何在Linux下对MySQL数据库执行sql文件)...

    从最下面可以看到,差不多有86389行,Ctrl+c.Ctrl+v后 PHPstorm一直没有反应.... 肿么办??复制粘贴不行的话,可以用什么方法把数据插入到数据库中,数据库用的是MySQL. 皇 ...

  7. MSSQL On Linux AlwaysOn

    1:初始化服务器 (1):修改主机名并重启服务器(所有节点) 注:三个节点均需修改主机名,主机名可以根据实际情况设置. hostnamectl set-hostname MSSQL001 #修改nod ...

  8. MS-SQL Server 基础类 - SQL语句

      网址收藏夹 免费申请! 首页 |收藏夹 | 笑话 | 贴吧 | 交友 | 留言 | 软件 | 超市 | 网页特效 | 酷站导航 | 论坛 新闻 | 同学录 | 图片 | 跑商 | 动画 | 音乐 ...

  9. Neo4j 启动报错 Server shutdown initiated by request

    Neo4j 启动报错 Server shutdown initiated by request 检查Neo4j conf文件 尝试restart 删除database下所有数据 检查Neo4j con ...

最新文章

  1. html 链接 pdf,简单的HTML DOM只解析名称和含有PDF链接链接
  2. 盘点|2021最受开发者欢迎和最具行业影响力的文章
  3. java nio 追加写文件_Java NIO在文件末尾追加数据
  4. HTML页面仿iphone数字角标
  5. fileinput 加 ftp 加 nginx 加 SpringBoot上传文件
  6. 我每天路过胡同的飞鸽传书
  7. php加密数据解密,php 数据加密解密
  8. 天正电气html帮助,天正电气绘图经验心得
  9. WORD常用版式保存为模板?
  10. 不止是安防 红外摄像机在应急产业的应用
  11. 论文Real-Time Lane and Obstacle Detection on the global System
  12. 拓端tecdat|用Prophet在Python中进行时间序列预测
  13. 遥控直升机主旋翼设定
  14. 【Excel VBA】银行卡信用卡卡号校验功能函数
  15. 数据分析师,你是车夫,还是拉车的驴子
  16. 浅谈农批市场的信息化:发展现状、信息化动因和契入方向
  17. macM1芯片通过第三方安装php
  18. 轻量级模型设计与部署总结
  19. t600和t1200的区别
  20. Lua学习笔记(六):协程

热门文章

  1. C++ return ,break,continue,关键字
  2. Linux如何从图形界面切换到命令界面
  3. vscode配置anaconda3
  4. 常见排序算法效率比较
  5. JVM上的响应式流 — Reactor简介
  6. 2个byte类型数据相加(转型问题的分析)
  7. 从零开始学Win32平台缓冲区溢出(Part1)
  8. python基础知识理解
  9. Smali语法简单介绍
  10. Redefine:Change in the Changing World