Я строю lamp
контейнер для разработки из glats / alpine-lamp . Я хочу выполнить некоторые дополнительные команды sql (создать БД и некоторых тестовых пользователей) после загрузки контейнера. Я создал новый init.sh
сценарий, который выполняется в качестве точки входа моего Dockerfile, например:
FROM glats/alpine-lamp
ENV MYSQL_ROOT_PASSWORD=password
COPY init.sh /init.sh
RUN chmod u+x /init.sh
ENTRYPOINT ["/init.sh"]
В моем init.sh
я выполняю сценарий точки входа родительского контейнера , но поскольку этот сценарий не завершается и не запускается в фоновом режиме, мои добавления никогда не выполняются. Я пробовал несколько разных способов вызова родительского скрипта, включая source entry.sh
, /bin/sh /entry.sh
и (/entry.sh)
. Я также попытался отправить его в фоновый режим, используя /entry.sh &
, хотя это тоже не сработало.
Как правильно добавить дополнительные сценарии точки входа в контейнер, когда родительский сценарий не завершается?
РЕДАКТИРОВАТЬ: мой сценарий инициализации
#!/bin/sh
#run the parent container's entry script
/entry.sh &
# now run the rest of the stuff that needs to happen
mysql -u root -ppassword -e "CREATE DATABASE IF NOT EXISTS mydatabase"