Маю вкрай близькі інтимні стосунки із зниканням даних з бази (mysql) в контейнері після рестарту
/usr/local/bin/docker-compose down
/usr/local/bin/docker-compose up -d
пробував
docker commit [назва контейнера]
не допомогло - після рестарту звертаюся до бази, вона взагалі відсутня, але створюється за допомогою init.sh
#!/bin/bash
set -e
MYSQL_USER=$(echo "${MYSQL_USER}")
MYSQL_ROOT_PASSWORD=$(echo "${MYSQL_ROOT_PASSWORD}")
MYSQL_PASSWORD=$(echo "${MYSQL_PASSWORD}")
MYSQL_DB=$(echo "${MYSQL_DB}")
echo "CREATE USER IF NOT EXISTS '${MYSQL_USER}'@'%' IDENTIFIED BY '${MYSQL_PASSWORD}';" | mysql -u root --password=${MYSQL_ROOT_PASSWORD}
echo "CREATE DATABASE IF NOT EXISTS \`$MYSQL_DB\`;" | mysql -u root --password=${MYSQL_ROOT_PASSWORD}
echo "GRANT ALL PRIVILEGES ON ${MYSQL_DB}.* TO '${MYSQL_USER}'@'%';" | mysql -u root --password=${MYSQL_ROOT_PASSWORD}
echo "FLUSH PRIVILEGES;" | mysql -u root --password=${MYSQL_ROOT_PASSWORD}
шматок з docker-compose.yml
services:
db:
image: mysql:8.0.33
command: mysqld --default-authentication-plugin=mysql_native_password
restart: always
env_file:
- manual/.env
ports:
- 33306:3306
volumes:
- db:/var/lib/mysql
networks:
recommender:
ipv4_address: 179.20.0.10
volumes:
db:
external: true
ґпт поки що не допоміг
----
Upd: пробую
/usr/local/bin/docker-compose stop
замість
/usr/local/bin/docker-compose down
тепер після запуску
/usr/local/bin/docker-compose up -d
якщо встигнути тут же зробити селект, то на мить можна побачити дані з минулого запуску, потім база каже що такої назви бази нема, потім що нема таблиці, а потім - що таблиця порожня.
Якась фігня.