У меня проблема с контейнером mysql для запуска сценариев инициализации.
У меня есть два файла create.sql
и insert.sql
, которые яиспользуйте для инициализации базы данных.
Я создаю образы с помощью команды docker-compose.yml
, и она успешно выполняется и создает образы.
У меня две проблемы.
Когда я запускаю команду docker-compose up
, контейнер mysql создается и запускается успешно.Однако два сценария инициализации (create.sql
и insert.sql
) не работают в базе данных.
Я явно используюdocker run
команда для запуска созданного контейнера MySQL.В этом сценарии сценарии инициализации запускаются успешно .
Я использую Docker версия 18.09.0 и docker-compose версия 1.23.1 и ubuntu 16.04 LTS
Я новичок в докере и, похоже, не могу решить проблему.
Ниже приведены файлы, которые я использую для создания изображений.
docker-compose.yml
файл.
version: '3'
services:
demo-mysql:
image: demo-mysql
build: ./demo-mysql
volumes:
- /mnt/data/mysql-data:/var/lib/mysql
ports:
- 3306:3306
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=demo
- MYSQL_PASSWORD=root
demo-api:
image: demo-api-1.0
build: ./api
depends_on:
- demo-mysql
ports:
- 8080:8080
environment:
- DATABASE_HOST=demo-mysql
- DATABASE_USER=root
- DATABASE_PASSWORD=root
- DATABASE_NAME=demo
- DATABASE_PORT=3306
demo1-app:
image: demo1-app-1.0
build: ./demo1
depends_on:
- demo-mysql
ports:
- 8090:8090
environment:
- DATABASE_HOST=demo-mysql
- DATABASE_USER=root
- DATABASE_PASSWORD=root
- DATABASE_NAME=demo
- DATABASE_PORT=3306
Ниже приведеныDockerfile
для проекта весенней загрузки
FROM java:8
VOLUME /tmp
ARG DATA_PATH=/src/main/resources
ARG APP_PORT=8080
EXPOSE ${APP_PORT}
ADD /build/libs/demo-api.jar demo-api.jar
ENTRYPOINT ["java","-jar","demo-api.jar"]
Ниже приведен Dockerfile
, который я использовал для создания своего изображения mysql
FROM mysql:5.7
ENV MYSQL_DATABASE=demo \
MYSQL_USER=root \
MYSQL_ROOT_PASSWORD=root
ADD ./1.0/create.sql /docker-entrypoint-initdb.d
ADD ./1.0/insert.sql /docker-entrypoint-initdb.d
EXPOSE 3306