Создание образа Docker от имени некорневого пользователя

#docker #alpine

#docker #alpine-linux

Вопрос:

Я понимаю, что при создании образа Docker в качестве наилучшей практики мне не следует использовать root пользователя, но у меня возникают трудности с пользователем, которого я создал.

Здесь мой Dockerfile

 FROM alpine:3.9.2
RUN addgroup -S cetacean amp;amp; adduser -S mobydick -G cetacean
USER mobydick
RUN apk update 
  

И вот ошибка, которую я получаю при ее запуске

ОШИБКА: Не удается заблокировать базу данных: отказано в разрешении

ОШИБКА: Не удалось открыть базу данных apk: отказано в разрешении

Что я должен сделать, чтобы иметь возможность устанавливать пакеты с помощью mobydick ?

Ответ №1:

Согласно рекомендациям, если возможно, мы должны запускать контейнер docker от имени некорневого пользователя.
Мы можем сделать это, добавив пользователя в конце, чтобы вы могли устанавливать все пакеты от имени root, и при запуске контейнера он использует пользователя без прав root.

  FROM alpine:3.9.2
 RUN addgroup -S cetacean amp;amp; adduser -S mobydick -G cetacean
 RUN apk update 
 USER mobydick
  

Вы можете прочитать больше здесь.

Комментарии:

1. Спасибо за ваш ответ. Это определенно возможный путь.

2. Вместо этого вам нужно будет запустить некоторые базовые образы RUN addgroup --system cetacean amp;amp; adduser --system mobydick --ingroup cetacean , чтобы избежать таких ошибок, как Option s id ambiguous .