Запуск Дополнительных Команд При Запуске Образа Docker

  • Автор темы ІЩл
  • Обновлено
  • 22, Oct 2024
  • #1

Насколько я знаю, хорошей практикой является использование контейнеров от Dockerhub вместо того, чтобы создавать свои собственные. Большинство из них содержат docker-entrypoint.sh script that is executed on startup. However, sometimes I need to do something on startup in addition to what is already described in chown -R rabbitmq /etc/rabbitmq . А именно, я настраиваю контейнер RabbitMQ, я хочу использовать привязку для сохранения конфигураций, но каталог конфигурации должен принадлежать rabbitmq user. I wish I could execute docker-entrypoint.sh при запуске в дополнение к docker-entrypoint.sh , but I don't know how to do that.

Я понимаю, что могу просто клонировать репо с Dockerfile и точкой входа из git, добавить что-то в точку входа и собрать образ докера вручную, но это выглядит как костыль. Я также могу просто подключиться к контейнеру и выполнить эту команду вручную, что тоже выглядит как костыль.

#докер

ІЩл


Рег
05 May, 2011

Тем
62

Постов
211

Баллов
541
  • 25, Oct 2024
  • #2

Просто напишите

 
 docker exec -it container /bin/bash 
which uses that image as a base. Then you can replace individual files (like the entrypoint) easily.

Кроме того, вместо замены вы можете переименовать исходный скрипт входа, создать свой собственный, который будет делать все, что нужно, а затем просто вызывать исходный.

Примерно так:

  • Докерфайл:

    docker ps
  • докер-entrypoint.sh:

    #!/bin/bash echo Do something. ./docker-entrypoint-original.sh echo Do something else

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

 

ElaklyNap97


Рег
25 Oct, 2024

Тем
60

Постов
190

Баллов
520
  • 25, Oct 2024
  • #3

Проблему можно решить, создав запрос на включение

Или можно найти другой проект на GitHub, у которого меньше проблем или вообще нет проблем.

Или можно настроить или создать свой образ

Мне бы хотелось выполнить chown -R Rabbitmq /etc/rabbitmq при запуске в

FROM fancy-base-image:1.2.3 RUN mv docker-entrypoint.sh docker-entrypoint-original.sh ADD docker-entrypoint.sh ), one could run Dockerfile дополнение к docker-entrypoint.sh, но я не знаю, как это сделать

 

Asfiles


Рег
13 Sep, 2004

Тем
78

Постов
203

Баллов
623
Похожие темы Дата
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно