Мы используем CircleCI для проекта с типом выполнения по умолчанию docker
. Это означает, что каждое задание CI, которое запускается, запускает новый контейнер Docker, а сборка запускается внутри этого контейнера.
Этот контейнер CI содержит следующие файлы:
docker-compose.yml
sql-setup.sql
Этот docker-compose.yml
файл запускает изображение MySQL и использует volumes
для копирования внутри SQL скрипта, чтобы он был готов при запуске, например:
mysql:
image: mysql:8.0.18
...
volumes:
- ./sql-setup.sql:/docker-entrypoint-initdb.d/sql-setup.sql
(Это работает на локальный компьютер разработчика.)
Проблема в том, что при работе на CI docker-compose up
в «родительском» контейнере CI создает контейнер «дочерний / родственный» с:
drwxr-xr-x 2 root root 40 Jul 8 17:26 sql-setup.sql
Обратите внимание, что это каталог!
Моя отладка предполагает, что это потому, что ./sql-setup.sql
не существует на хосте . (Только в контейнере CI, запущенном на хосте .)
Мой вопрос: Как мне настроить мой docker-compose.yml
(или мою конфигурацию CircleCI), чтобы файл из контейнера CI (который работает docker-compose up
) правильно копируется в получившийся mysql
контейнер compose?