Если вы посмотрите на официальный 5.6.9asticsearch Dockerfile , внизу вы увидите следующее:
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["elasticsearch"]
Если вы не знаете разницу между CMD
и ENTRYPOINT
, прочитайте этот ответ .
То, что вы делаете, вы переписываете эти две инструкции чем-то другим. Что вам действительно нужно, это продлить CMD
. Что я обычно делаю в своих изображениях, я создаю сценарий sh
и комбинирую разные вещи, которые мне нужны, а затем указываю сценарий для CMD
. Итак, вам нужно запустить sgadmin_demo.sh
, но вам нужно сначала дождаться упругого поиска. Создайте скрипт start.sh
:
#!/bin/bash
elasticsearch
sleep 15
sgadmin_demo.sh
Теперь добавьте ваш скрипт к вашему изображению и запустите его на CMD
:
FROM: ...
...
COPY start.sh /tmp/start.sh
CMD ["/tmp/start.sh"]
Теперь это должно выполняться после запуска контейнера. Не забудьте построить:)