У меня есть Rails, развернутый в Kubernetes.В настоящее время время предварительной загрузки приложения огромно (около минуты), и я ищу способы уменьшить это время.
Одним из решений, которое я нашел, был гем под названием bootsnap
, который кэширует некоторые важные файлы, поэтому каждый раз, когда вы загружаете эти файлы, уже загружены, и выигрыш в предварительной загрузке составляет около 50%
Дело в том, что это будет работать, только если мы перезапустим сервер и с помощью Kubernetes мы всегда создадим новый Pod, поэтому кеша не будет и нет никаких преимуществ в использовании bootsnap
.
Чтобы создать этот кеш, мне нужно всего лишь запустить rails server
, поэтому я подумал, что мог бы добавить команду в мой Dockerfile для запуска Rails, а затем, в случае успеха, убить ее, потому что в этот момент, файлы уже были кэшированы, и мое изображение будет содержать эти файлы
Есть ли способ, что я могу сделать что-то вроде
RUN rails server --daemon
RUN until port 3000 is not up wait
RUN kill server