Я создал несколько контейнеров для всех членов моей группы на основе собственного изображения. Цель состоит в том, чтобы использовать их в качестве сред разработки. Все контейнеры запускаются с командой tail -f /dev/nul
, чтобы сделать их постоянными, даже если используется команда выхода, и все они имеют собственные имена, основанные на именах членов моей группы (${USER}_container
). Мы прикрепляем к ним с помощью
docker exec -it --user $(id -u):$(cut -d: -f3 < <(getent group mygroup)) ${USER}_container bash
Таким образом, каждый пользователь отображается как член группы пользователей mygroup в контейнерах, а это означает, что нет проблем с правами собственности на файлы и разрешениями при использовании монтирования привязки совместного проекта.
Это отлично работает в терминале, но я бы также хотел, чтобы мы использовали VSCode для разработки. Однако, когда я подключаюсь к одному из удаленных контейнеров через VSCode и открываю оболочку, я получаю стандартную оболочку, в которой пользователь автоматически получает root-права. Очень важно, чтобы этого не происходило и чтобы мы все вошли в систему с нашими конкретными UID и GID.
Я нашел "docker.command.attach"
параметр в настройках VSCode и изменил его на тот, который мы использовали выше, но это не помогло. Как указать VSCode подключаться к контейнеру так, как мы хотим, и открывать удаленные оболочки с пользовательскими UID и GID?