gpt4 book ai didi

mysql - TeamCity 无法连接在 Docker 中运行的 MySQL

转载 作者:行者123 更新时间:2023-11-29 09:57:16 25 4
gpt4 key购买 nike

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

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,错误信息是: enter image description here

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

mysql -u root --protocol=tcp -p

数据库“teamcity”也已创建。

我的环境:

  • Mac OS X 10.14.1
  • Docker 桌面 2.0.0.0-mac81(29211)
  • TeamCity 和 MySQL 在单独的 Docker 容器中运行
  • 两个 Docker 镜像标签都是最新的

最佳答案

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

解决方案是使用 Docker Compose,它默认为容器设置本地网络。

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

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:

MYSQL_ROOT_PASSWORD=YOUR-MYSQL-PASSWD

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

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

第五步:在数据库主机字段中输入“MySQL:3306”。

关于mysql - TeamCity 无法连接在 Docker 中运行的 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53628855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com