Using cache
---> aa69a409f7ee
Step 14/29 : RUN chown -R developer:developer /home/developer
---> Using cache
---> 225efae2ea79
Step 15/29 : RUN chmod -R 755 /home/developer
---> Using cache
---> fa18af1f7537
Step 16/29 : USER developer
---> Using cache
---> b805e25ef801
Step 17/29 : WORKDIR /home/developer
---> Using cache
---> b6bfb7633a39
Step 18/29 : RUN whoami 1>&2
---> Using cache
---> d29577066af7
Step 19/29 : RUN pwd 1>&2
---> Running in 8cdd09ee1403
/home/developer
Removing intermediate container 8cdd09ee1403
---> e274ca167722
Step 20/29 : RUN ls -al 1>&2
---> Running in e072103e7ce3
total 20
drwxr-xr-x 1 root root 4096 Aug 24 21:24 .
drwxr-xr-x 1 root root 4096 Aug 24 21:24 ..
-rwxr-xr-x 1 root root 220 Mar 27 2022 .bash_logout
-rwxr-xr-x 1 root root 3526 Mar 27 2022 .bashrc
-rwxr-xr-x 1 root root 807 Mar 27 2022 .profile
Removing intermediate container e072103e7ce3
---> add6e80a3fbb
Step 21/29 : RUN curl "https://code-server.dev/install.sh" --output install.sh
---> Running in 0f9c997dbd1e
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
Warning: Failed to create the file install.sh: Permission denied
Выглядит так, что WORKDIR /home/developer перезатирает хоум директорию несчастного нового пользователя. Боль-унижение.
Ну ls же вывел, что владелец папки root
Так вот, я о том же. А почему так — вот в этом вопрос.
Весь Dockerfile в студию, и логи сборки без кэша
В виде файлов, а не кучи сообщений
Ща будет смешно... Ставлю я, значит. как полагается, собираться без кэшей, и думаю, что логи-то надо красиво записать. Обнаруживаю, что --progress=plain ничего не делает (т.е., билдкит не включен). Втыкаю DOCKER_BUILDKIT=1 и... образ начинает собираться. Кек.
Насколько я понял - докер уже контейнер, он изолирован от внешних угроз. И там внутри все делается из под рута, что суть антипатерн для "обычных" хостов. зачем тебе внутри конейнера developer? не парься, делай рутом всё
зависит от того как он использует контейнер.. при локальной разработке удобен такой юзер чтобы не мучиться с правами на файлы
Да всё – вопрос решён (сам собой). С билдкитом – работает. А юзер мне нужен для того, чтобы пользователь не мог поломать контейнер через фронтенд. Там, в контейнере, подразумевается использование терминала и доступа к файловой системе через фронтенд (и это не баг, а фича, которая мне нужна, но в безопасном виде).
Можно, конечно, поднимать по контейнеру с фронтендом на каждый запрос – на это чё-то оверкилл. Хотя... может и нет. Как вариант ещё, можно держать пул таких контейнеров. И поднимать новые, если какой-то вдруг сдох.
Обсуждают сегодня