首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TeamCity未能连接在Docker中运行的MySQL

问TeamCity未能连接在Docker中运行的MySQL
EN

Stack Overflow用户
提问于 2018-12-05 09:19:24
回答 1查看 762关注 0票数 1

我使用以下命令在docker中启动MySQL:

代码语言:javascript
复制
docker run --name mysql-for-teamcity \

-e MYSQL_ROOT_PASSWORD=FAKE-ROOT-PW\

-v ~/MySQL/var_lib_mysql:/var/lib/mysql \

-p 3306:3306 \

-p 33060:33060 \

-it mysql

但是TeamCity未能连接MySQL,错误消息是:

​

我可以使用以下命令连接终端中的MySQL:

代码语言:javascript
复制
mysql -u root --protocol=tcp -p

此外,还创建了数据库“团队城市”。

我的环境:

  • Mac 10.14.1
  • 码头桌面2.0.0.0-mac81(29211)
  • TeamCity和MySQL在独立的码头集装箱中运行
  • 两个Docker图像标记都是最新的
EN

回答 1

Stack Overflow用户

发布于 2018-12-06 07:41:15

原因是TeamCity和MySQL在单独的容器中运行,所以当我为TeamCity指定"127.0.0.1“时,它不可能连接到MySQL。因为它们根本不在同一台主机上运行。

解决方案是使用Docker,默认情况下设置容器的本地网络。

步骤1:在要放置docker-compose.yml的空目录中创建一个TeamCity:

代码语言:javascript
复制
version: '3'
services:
  TeamCity:
    image: jetbrains/teamcity-server
    ports:
     - "8111:8111"
    volumes:
     - <your TeamCity dir>/data:/data/teamcity_server/datadir
     - <your TeamCity dir>log:/opt/teamcity/logs
  MySQL:
    image: mysql
    ports:
     - "3306:3306"
    volumes:
     - <your TeamCity dir>/mysql:/var/lib/mysql
    env_file:
      - mysql.env

步骤2:在同一个目录中创建一个mysql.env:

代码语言:javascript
复制
MYSQL_ROOT_PASSWORD=YOUR-MYSQL-PASSWD

步骤3:在终端中运行docker-compose up -d

步骤4:在浏览器中打开"http://127.0.0.1:8111“

步骤5:在DataBase主机字段中输入"MySQL:3306“。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53628855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档