`bundle` не в Docker PATH - PullRequest
       20

`bundle` не в Docker PATH

1 голос
/ 05 октября 2019

У меня есть образ докера (который поставляется как есть, без Dockerfile и т. Д.) С приложением Ruby, когда я пытаюсь запустить контейнер докера с docker run application_image bundle exec puma -C config/puma.rb, я получаю starting container process caused "exec: \"bundle\": executable file not found in $PATH": unknown.. Все предлагаемые исправления для этого - указать что-то в Dockerfile (чего там нет). Есть ли способ запустить контейнер таким образом?

Ответы [ 2 ]

0 голосов
/ 06 октября 2019

Лучше всего, если вы можете попросить у сопровождающего изображения инструкции. Если это не помогло, попробуйте сначала изучить образ докера, как предложено @hmm, см. https://stackoverflow.com/a/58256085/5641227 о том, как это сделать.

Затем либо извлеките содержимое изображения, если вам позволено, и постройте его самостоятельно. scratch.

Или попробуйте создать новый образ из того, что у вас есть, и добавьте новые шаги сборки в новый Dockerfile:

FROM <your-current-image:and-tag>

RUN gem install bundler -v "~>2.0.2" --no-document --quiet --force

CMD ["bundle", "exec", "puma -C config/puma.rb"]

Затем просто запустите его после того, как вы пометите и создадите новый образ. :

docker run new_application_image

Также вам нужна правильная версия компоновщика. 2.0.2 это просто пример. наличие конфликтующей версии не сработает.

0 голосов
/ 05 октября 2019

Возможны некоторые варианты обхода.

  • Создание другого образа докера на основе существующего с установленным комплектом
  • Установка комплекта до фактического запуска приложения
...