Вы хотите контейнер, который всегда включен с nginx, и запускаете этот скрипт каждые 5 дней.
Сначала вы можете просто запустить nginx, используя:
CMD ["nginx", "-g", "daemon off;"]
Таким образом, контейнер всегда включен с запущенным nginx.
Затем просто запустите ваш скрипт как обычный скрипт с помощью cron:
chmod +x script.sh
0 0 */5 * * script.sh
РЕДАКТИРОВАТЬ: так как скрипт должен запускаться в первый раз
1) одинРешение (красивое) заключается в том, чтобы вручную загрузить действительный ключ подписи AWS в первый раз.После этого в первый раз скрипт автоматически обновит действительный ключ подписи AWS.(используя ранее представленное решение)
2) другое решение - запустить файл точки входа в докер (это ваш скрипт)
# Your script
COPY docker-entrypoint.sh /usr/local/bin/
RUN ["chmod", "+x", "/usr/local/bin/docker-entrypoint.sh"]
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
# Define default command.
CMD ["/bin/bash"]
В вашем скрипте:
service nginx start
echo "Nginx is running."
#This line will prevent the container from turning off
exec "$@";
+ информация о причине и решении использовать строку exec