我使用以下命令在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
我可以使用以下命令在终端中连接MySQL:
mysql -u root --protocol=tcp -p
还创建了数据库“ teamcity”。
我的环境:
答案 0 :(得分:0)
原因是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”
第5步:在“数据库主机”字段中输入“ MySQL:3306”。