TeamCity не удалось подключиться к MySQL, запущенному в Docker - PullRequest
0 голосов
/ 05 декабря 2018

Я запускаю MySQL в Docker, используя следующую команду:

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" также была создана.

Моя среда:

  • MacOS X 10.14.1
  • Docker Desktop 2.0.0.0-mac81 (29211)
  • TeamCity и MySQL работают в отдельных контейнерах Docker
  • Оба тега Docker images - самые последние

1 Ответ

0 голосов
/ 06 декабря 2018

Причина в том, что TeamCity и MySQL работают в отдельных контейнерах, поэтому, когда я указал «127.0.0.1» для TeamCity, он не смог подключиться к MySQL.Потому что они просто не работают на одном хосте.

Решение использует Docker Compose, который по умолчанию устанавливает локальную сеть для контейнеров.

Шаг 1: создайте docker-compose.yml в пустой директории, в которую вы хотите поместить TeamCity:

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 »вполе Узел базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...