Эквивалент команды копирования для инициализации базы данных через точку входа

Что эквивалентно указанию схемы базы данных в файле docker-compose.yml.

база данных/файл Docker

FROM mysql:5.7

COPY ./schema.sql /docker-entrypoint-initdb.d/

докер-compose.yml

services:
  database:
    image: "mysql:5.7"
    container_name: "mysql"
    ports:
      - "6603:3306"

Попытки

Я попытался со следующим. Является ли это возможным?

version: '3'

services:
  database:
    image: "mysql:5.7"
    container_name: "mysql"
    ports:
      - "6603:3306"
    command: --init-file /database/schema.sql
      volumes:
        - ./init.sql:/database/schema.sql

Да? Докер пишет жалобы? Кажется, здесь нет ничего слишком неправильного, кроме вашего отступа, который я не знаю, проблема ли это с копированием или вы ошиблись здесь.

glee8e 22.05.2019 15:06

отступ правильный, так как я использую IDE, просто я не знаком с этой командой, я скопировал и вставил, у меня нет init.sql, у меня есть только база данных/schema.sql

Developer 22.05.2019 15:08
0
2
20
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Итак, у вас есть schema.sql где-то в файловой системе вашего хоста, давайте предположим, что он находится на ./database/schema.sql. Тогда у вас должен получиться такой компоновочный файл:

version: '3'

services:
  database:
    image: "mysql:5.7"
    container_name: "mysql"
    ports:
    - "6603:3306"
    volumes:
    - ./database/schema.sql:/docker-entrypoint-initdb.d/init.sql

Это изображение не поддерживает никакие команды --init-file. Вместо этого он принимает сценарии инициализации, помещенные в каталог /docker-entrypoint-initdb.d.

Другие вопросы по теме