停靠TeamCity时找不到MSSQL驱动程序

时间:2017-11-08 14:44:04

标签: sql-server docker jdbc teamcity

使用此命令加载一个TeamCity图像后:

docker run -it --name teamcity -p 8111:8111 jetbrains/teamcity-server

在选择MSSQL时,我无法比数据库集合更进一步。 enter image description here

我试图在文档中找到解决方案,我找到了这个页面:

Setting up TeamCity with MS SQL Server

我做了文档建议的内容,我下载了Microsoft JDBC Driver 6.2并且我复制了它的内容 - 它是<Team City Data Directory>/lib/jdbc目录中的zip。显然,即使我将包含驱动程序的jar文件放入请求目录,无法识别。我尝试先复制目录中的mssql-jdbc-6.2.2.jre8.jarmssql-jdbc-6.2.2.jre7.jar文件以及后来所有包含zip的内容。之后我下载了Microsoft JDBC Driver 6.0,认为这可能是版本问题,因为文档建议复制sqljdbc42.jar,我也没做过。也许是因为我的MSSQL服务器也是一个docker容器,并且没有一些特定的驱动程序需要安装在我的机器上。

1 个答案:

答案 0 :(得分:0)

我想通了,你需要找到docker设置TeamCity Data Directory的位置。在我的情况下,我没有在我运行的命令中指定路径:

docker run -it --name teamcity-server -v C:/ProgramData/JetBrains/TeamCity -v C:/TeamCity/logs -p 8111:8111 jetbrains/teamcity-server:latest-nanoserver

这就是为什么docker为我创建默认路径的原因:

enter image description here

一旦我找到了这条路径,根据这个link TeamCity Data Directory/lib/jdbc目录

,很容易移动.jar库。

如果您想避开丑陋的默认目录,则需要在command中指定TeamCity数据目录的路径:

docker run -it --name teamcity-server-instance
    -v <path to data directory>:C:/ProgramData/JetBrains/TeamCity
    -v <path to logs directory>:C:/TeamCity/logs
    -p <port on host>:8111
    jetbrains/teamcity-server:latest-nanoserver

,其中

  • 数据目录的路径是要用作的主机目录 TeamCity数据目录,TeamCity存储项目设置和 建立结果。通过空目录为全新的开始。当。。。的时候 如果未设置映射,则会丢失所有TeamCity设置 容器关闭。

  • 日志目录的路径是要存储的主机目录 TeamCity服务器日志。可以省略映射,但是可以省略日志 将在集装箱关闭时丢失,这将导致问题 调查不可能。

所以我强烈建议在命令中设置该字段,因为文档指出如果你没有设置该字段,你将失去容器关闭时的所有TeamCity设置。