最新版本的(应该是 SQL Server 2019) mssql-tools 镜像的 Dockerfile

唔,官方版本的 mssql-tools 镜像好像好久没更新了(https://hub.docker.com/_/microsoft-mssql-tools),用起来有一些bug,在此根据官方 Dockerfile 修改生成最新版本的镜像:

# SQL Server Command Line Tools
FROM ubuntu:20.04

LABEL maintainer="SQL Server Engineering Team"

# apt-get and system utilities
RUN apt-get update && apt-get install -y 
    curl apt-transport-https debconf-utils gnupg2 
    && rm -rf /var/lib/apt/lists/*

# adding custom MS repository
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
RUN curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

# install SQL Server drivers and tools
RUN apt-get update && ACCEPT_EULA=Y apt-get install -y msodbcsql17 mssql-tools
RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
RUN /bin/bash -c "source ~/.bashrc"



RUN apt-get -y install locales
RUN locale-gen zh_CN.UTF-8
RUN update-locale LANG=zh_CN.UTF-8



CMD /bin/bash

复制下来,保存为 Dockerfile 文件,执行编译命令:docker build . -t xxx 就可以获得最新版本的 mssql-tools 镜像了。

简单的使用命令记录:

1、使用容器(用完即删,同时映射一个 sql 目录便于执行批量脚本):

docker run -it --rm 
-v /home/sql:/home/sql 
--name=mssql-tools docker-registry.psy-cloud.com/mssql-tools

2、连接数据库

sqlcmd -S 10.10.10.10 -U username -P password

3、批量执行脚本(-e 参数可以输出执行的脚本内容)

sqlcmd -S 10.10.10.10 -U username -P password -d dbname -i filename.sql -e

输了你,赢了世界又如何...
原文地址:https://www.cnblogs.com/xwgli/p/14695312.html