#kubernetes
Вопрос:
Я хочу выполнить сценарий перед запуском своего контейнера
Если я выполню сценарий в таком контейнере
containers:
- name: myservice
image: myservice.azurecr.io/myservice:1.0.6019912
volumeMounts:
- name: secrets-store-inline
mountPath: "/mnt/secrets-store"
readOnly: true
command:
- '/bin/bash'
- '-c'
- 'ls /mnt/secrets-store;'
затем эта команда заменяет мою точку входа, и модуль завершает работу. Как я могу выполнить команду, но затем запустить контейнер после этого
Ответ №1:
Распространенный способ сделать это-тоже использовать контейнеры инициализации, но я не уверен, что вы пытаетесь запустить, прежде чем запускать ENTRYPOINT
.
Вы можете применить те же монтирования томов в контейнерах инициализации, если для работы инициализации требуется изменить состояние содержимого смонтированной файловой системы.
Другим решением может быть выполнение команды ENTRYPOINT
» s » в качестве последнего оператора в сценарии.
Комментарии:
1. Спасибо, что ответил ДзвИлкину! Как я могу найти точную команду ТОЧКИ ВХОДА? Разве это не внутри файла Docker? Как позвонить докеру? Что это за команда или как ее найти?
2. Возможно, я могу вместо этого добавить команду в Docker! Вместо кубернетеса, спасибо!
3. Вы можете
docker inspect [[IMAGE]]:[[TAG]]
видеть команды (слои) на изображении. Тем не менее, это звучит так, как будто вы не создавали изображение, а затем (!?) вам, вероятно, не следует изменять изображение («вы его ломаете, вы за это платите»), и было бы лучше либо использовать контейнер инициализации, либо написать сценарий, запускающий изображение.4. Спасибо, Даз, что помог мне найти команду! Идея Dockefile была не очень умной, хотя, потому что мне нужно запускать не во время сборки, а во время запуска, Спасибо вам!