Не удается правильно инициализировать mysql db (используя docker-compose) в облачной сборке Google - PullRequest
0 голосов
/ 21 октября 2019

В настоящее время я настраиваю конвейер сборки / тестирования для моего приложения (django) с помощью Google Cloud Build (и тестирую с использованием cloud-build-local).

Чтобы правильно запустить тесты, мне нужно запустить зависимость mysql (для этого я использую docker-compose). Проблема заключается в том, что при запуске docker-compose на этапе облачной сборки сценарии инициализации базы данных не запускаются должным образом, я получаю

/usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/0-init.sql
ERROR: Can't initialize batch_readline - may be the input source is a directory or a block device.

(работает правильная работа docker-compose из google-cloud-build)

Вот мой файл для создания docker:

version: '3.3'
services:
  mysql:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: 'dev'
      MYSQL_USER: 'dev'
      MYSQL_PASSWORD: 'dev'
      MYSQL_ROOT_PASSWORD: 'root'
    ports:
      - '3306:3306'
    expose:
      - '3306'
    volumes:
      - reports-db:/var/lib/mysql-reports
      - ./dev/databases/init.sql:/docker-entrypoint-initdb.d/0-init.sql
      - ... (other init scripts) 
volumes:
  reports-db:

И cloudbuild.yaml:

steps:
...
- id: 'tests-dependencies'
  name: 'docker/compose:1.24.1'
  args: ['up', '-d']
...

Файлы организованы так:

parent_dir/
   dev/
      databases/
         init.sql
   cloudbuild.yaml
   docker-compose.yml
   ...

(все команды запускаются с parent_dir/)

Когда я запускаю

cloud-build-local --config=cloudbuild.yaml --dryrun=false .

, я получаю

...
Step #2 - "tests-dependencies": mysql_1  | /usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/0-init.sql
Step #2 - "tests-dependencies": mysql_1  | ERROR: Can't initialize batch_readline - may be the input source is a directory or a block device.
...

Зная, что запуск docker-compose up напрямую работаетправильно

Я подозреваю, что способ монтирования томов неверен, но не могу найти почему / как.

Если у кого-то есть какие-либо замечания по этому вопросу, это будет очень полезно :)

Заранее спасибо.

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