【问题标题】:MSSQL drivers not found when dockerizing TeamCitydockerizing TeamCity 时找不到 MSSQL 驱动程序
【发布时间】:2018-01-02 05:16:53
【问题描述】:

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

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

在选择 MSSQL 时,我只能了解数据库集合。

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

Setting up TeamCity with MS SQL Server

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

【问题讨论】:

  • 你试过让它在 Docker 之外工作吗?
  • @DavidG,我不太明白这个问题,你是建议我应该在 Docker 之外安装 teamcity 吗?
  • 是的,看看它是否在没有 Docker 复杂性的情况下工作。
  • 不,我试图避免这种情况。我有其他服务器应用程序正在运行,我不想让资源过载。我以前在一台带有 MSSQL 服务器的机器上做过这个,而 TeamCity 从来没有向我展示过这种消息。如果我没有很快找到答案,我会按照你的建议尝试安装它。
  • 您没有可以玩的一次性 Linux 机器或虚拟机吗?那就是我要开始的地方。确保我可以在接触 Docker 之前让它运行。

标签: sql-server docker jdbc teamcity


【解决方案1】:

我想通了,你需要找到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 为我创建默认路径的原因:

一旦我找到该路径,就很容易根据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 设置。

【讨论】:

    猜你喜欢
    • 2013-04-25
    • 2014-04-11
    • 2012-06-30
    • 1970-01-01
    • 2019-07-17
    • 2018-09-04
    • 2016-07-14
    • 1970-01-01
    相关资源
    最近更新 更多