Назад | Перейти на главную страницу

Есть ли способ запускать команды после запуска образа докера с помощью dockerfile и / или docker-compose?

Я пытаюсь настроить контейнер базы данных (PostgreSQL), и я хочу настроить некоторые параметры базы данных, запустив команды SQL для запущенного экземпляра. Команда RUN в файле dockerfile запускается ДО запуска базы данных.

Думаю, я мог бы создать сценарий, чтобы сначала установить экземпляры докеров, а затем выдвинуть конфигурацию, но это не переносимо и не элегантно.

Есть ли способ каким-то образом настроить команды RUN или аналогичные для запуска ПОСЛЕ запуска экземпляра контейнера?

Заранее спасибо за вашу помощь.

Одно из возможных решений:

  1. Создайте сценарий bash, содержащий команды запуска, которые вы хотите запустить внутри вашего контейнера.

  2. Скопируйте этот скрипт в образ докера с COPY команда

  3. Изменить RUN команда в Dockerfile для запуска вашего скрипта при запуске вместо вызова postgres прямо

  4. Убедитесь, что ваш скрипт вызывает postgres в конце (как оригинал RUN команда сделала)

(Вместо номера 4 можно сделать свой RUN сначала вызовите сценарий запуска, а затем вызовите postgres, в одну длинную строку как это.)

(Вы также можете изменить значение по умолчанию RUN команда, указав свою команду запуска в конце docker run ...)