У меня есть файл docker-compose.yml со следующим:
populated_db:
container_name: populated_db
restart: always
image: mysql
volumes:
- ./test_database.sql:/docker-entrypoint-initdb.d/a.sql
- populated_test_db:/var/lib/mysql
ports:
- "33061:3306"
environment:
MYSQL_RANDOM_ROOT_PASSWORD: "true"
MYSQL_DATABASE: aaaa
MYSQL_USER: aaaa
MYSQL_PASSWORD: aaaa
db:
container_name: db
image: mysql
ports:
- "33060:3306"
volumes:
- type: volume
source: populated_test_db
target: /var/lib/mysql
volume:
nocopy: false
restart: always
environment:
MYSQL_RANDOM_ROOT_PASSWORD: "true"
MYSQL_DATABASE: aaaa
MYSQL_USER: aaaa
MYSQL_PASSWORD: aaaa
depends_on:
- populated_db
volumes:
populated_test_db:
Контейнер populated_db успешно запускается и заполняет базу данных содержимым test_database.sql.Однако, как только он это сделает, контейнер db запускается и пытается использовать populated_test_db в качестве своего / var / lib / mysql, вызывая следующую ошибку:
Unable to lock ./ibdata1 error: 11
Check that you do not already have another mysqld process using the same InnoDB data or log files.
Предположительно это происходит потому, что контейнер populated_db все еще работает,Как я могу остановить его выполнение после заполнения тома, чтобы контейнер БД мог использовать заполненный том?