Следующий случай:
Я хочу собрать с помощью docker-compose два контейнера.Один из них - MySQL, другой - файл .war, выполняемый с использованием Springboot, который зависит от MySQL и нуждается в рабочем БД.После того, как я создаю контейнер mysql, я хочу заполнить базу данных моим файлом mysqldump, прежде чем будет создан другой контейнер.
Моей первой идеей было добавить его в мой файл Dockerfile mysql как
#RUN mysql -u root -p"$MYSQL_ROOT_PASSWORD"' < /appsb.sql
но, конечно, он хочет выполнить его во время строительства.
Я понятия не имею, как сделать это в файле docker-compose как Command, возможно, это сработает.Или мне нужно построить скрипт?
docker-compose.yml
version: "3"
services:
mysqldb:
networks:
- appsb-mysql
environment:
- MYSQL_ROOT_PASSWORD=rootpw
- MYSQL_DATABASE=appsb
build: ./mysql
app-sb:
image: openjdk:8-jdk-alpine
build: ./app-sb/
ports:
- "8080:8080"
networks:
- appsb-mysql
depends_on:
- mysqldb
networks:
- appsb-mysql:
Dockerfile для mysqldb:
FROM mysql:5.7
COPY target/appsb.sql /
#RUN mysql -u root -p"$MYSQL_ROOT_PASSWORD"' < /appsb.sql
Dockerfile для других приложений Springbootb:
FROM openjdk:8-jdk-alpine
VOLUME /tmp
COPY target/appsb.war /
RUN java -jar /appsb.war