Я вижу, что bundle install
и yarn install
обычно выполняются в Dockerfile следующим образом:
RUN bundle install && yarn install
Что означает, что если я изменю Gemfile или yarn.lock, мне нужно заново пересоздать образ , Я знаю, что существует кэширование слоев, и сборка docker не будет перестраивать другие слои, кроме слоя комплекта установки и установки пряжи. Но это значит, что я должен сделать docker-compose up -d --build
Но мне было интересно, можно ли поместить эти команды в сценарий ввода docker -compose или в команду как:
command: bundle install && yarn install && rails s
Таким образом, я считаю, что всякий раз, когда я выполняю docker-compose up -d
, bundle install
и yarn install
, будут выполняться без необходимости создания образа.
Не уверен, что он имеет какие-либо преимущества по сравнению с обычной установкой пакета в Dockerfile, за исключением того, что не нужно добавлять --build
в docker-compose up
. Исправьте, что если я сделаю это, установка пакета и установка пряжи будут выполняться, даже если нет никаких изменений в файлах Gemfile или Yarn. Я думаю, это одна из плохих сторон.
Пожалуйста, поправьте меня, если это не идеальный путь к go.
Новичок в docker мире.