Проблема дозволів на запис користувача для Docker


0

Я просто вивчаю Docker. У моєму Dockerfile є такі рядки

FROM debian:stable

RUN apt-get update && apt-get install -y \
    git \
    vim \
    ruby \
    rubygems \
    bundler \
    nodejs \
    build-essential

RUN adduser --disabled-login admin
RUN usermod -aG sudo admin
USER admin
RUN whoami
COPY sampleapp /app
RUN export GEM_HOME=$HOME/.gem
RUN gem install rake
WORKDIR /app
RUN bundle install

Коли я біжу docker build, Я отримую наступну помилку у виході

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /var/lib/gems/2.3.0 directory.

Як виправити цю помилку?

  • Чи повинен я надати доступ до цих каталогів адміністратору
  • Чи слід замінити GEM_HOME на інше місце замість ~ / home?

Це залежить від того, що ви намагаєтеся зробити і побудувати. Крім того, ви повинні спробувати перевірити, яка саме лінія викликає помилку (я не дуже знайомий з Ruby, але я вважаю, що це лінія встановлення gem або лінія встановлення пакетів. /app так чому б ви встановили свій будинок $HOME? Зараз користувачеві, ймовірно, відсутні відповідні права. Можливо, потрібно запустити sudo gem ... або sudo bundle ....
Seth

Відповіді:


0

Перше, що я хотів би запропонувати, це подивитися на права користувача для користувача, який виконує ваш докер, і права на каталоги / var / lib / gems / .... Переконайтеся, що ваші дозволи на записування та виконання достатні для виконання всіх команд у вашому докер-файлі.

По-друге, оскільки ви новачок у Docker, ось посилання на ресурси на Команди Docker додаткову інформацію.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.