#docker #docker-compose #containers #circleci
#docker #docker-составить #контейнеры #circleci
Вопрос:
Мой CircleCI
конфигурационный файл выглядит следующим образом:
version: 2
jobs:
build_test:
docker:
- image: circleci/python:3.7.3
- image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test
MYSQL_USER: test
MYSQL_PASSWORD: test
Теперь мне нужно заставить мой основной контейнер (python) обращаться к mysql
сервису, размещенному в контейнере mysql. Как мне это настроить?
В docker-compose files я могу сделать это через links
. Как мне это сделать в CircleCI
конфигурации?
Я понимаю, что одним из вариантов является их ввод docker-compose
и вызов docker-compose up
изнутри конфигурации CircleCI. Однако я ищу более элегантное решение, а не в зависимости от docker-compose
.
Комментарии:
1. Это зависит от того, что вы подразумеваете под «доступом». Если вы просто хотите подключиться к базе данных MySQL, тогда сетевой адрес просто
localhost
— CircleCI использует некоторые сетевые хитрости, чтобы подключить удаленный сервер к localhost контейнера сборки. По умолчанию используется порт MySQL по умолчанию, но я думаю, вы можете изменить это, либо установив определенноеenvironment
значение, либо используя пользовательскую команду для запуска сервера MySQL.2. Однако, если вы хотите настроить том в этом удаленном контейнере или
docker copy
в нем и т.д., Вы не сможете этого сделать. Удаленные контейнеры достаточно изолированы, предположительно, по соображениям безопасности.