РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗dcMyInSh 14 of 25 menu
◀ ▶

Скрипт оболочки в Docker

Скрипт оболочки в том же каталоге выполняет команды, а не только текст SQL. Имя файла должно заканчиваться на .sh, иначе стартовый механизм не запустит его как программу.

В init/app.sh первая строка задаёт интерпретатор, далее идёт вызов mysql, который создаёт таблицу marks. Пароль root берётся из переменной окружения внутри сценария:

#!/bin/sh mysql -uroot -p"$MYSQL_ROOT_PASSWORD" app -e "CREATE TABLE marks (id INT);"

Сервис db с базой app, паролем demo, томом shdata и папкой старта монтируют так:

services: db: image: mysql:9.7 environment: MYSQL_ROOT_PASSWORD: demo MYSQL_DATABASE: app volumes: - shdata:/var/lib/mysql - ./init:/docker-entrypoint-initdb.d volumes: shdata:

Фоновый подъём на образе mysql:9.7:

docker compose up -d

Проверка внутри сервиса показывает таблицу marks в базе app:

docker compose exec db mysql -uroot -pdemo app -e "SHOW TABLES LIKE 'marks'"

Создайте сценарий с расширением .sh, который через клиент заводит таблицу scores в базе app на томе labdata.

Убедитесь, что пароль в сценарии читается из окружения контейнера, а не из текста файла.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить