Alpine을 기본 이미지로 사용할 때 사용자를 추가하려면 어떻게해야합니까?
내가 사용하고 alpine
내 Dockerfile의 기본 이미지로 (알파인 기반으로하는 이미지 또는). 사용자를 생성하려면 어떤 지침을 추가해야합니까?
결국이 사용자를 사용하여 루트 사용자가 수행하지 않도록 컨테이너에 배치 할 애플리케이션을 실행합니다.
알파인 명령을 사용 adduser
하고 addgroup
(대신 사용자 및 그룹을 생성 useradd
하고 usergroup
).
FROM alpine:latest
# Create a group and user
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
# Tell docker that all future commands should run as the appuser user
USER appuser
에 대한 플래그 adduser
는 다음과 같습니다.
사용법 : adduser [OPTIONS] USER [GROUP] 새 사용자를 만들거나 USER를 GROUP에 추가 -h DIR 홈 디렉토리 -g GECOS GECOS 필드 -s SHELL 로그인 쉘 -G GRP 그룹 -S 시스템 사용자 생성 -D 암호를 지정하지 마십시오 -H 홈 디렉토리를 만들지 않음 -u UID 사용자 ID -k SKEL 스켈레톤 디렉토리 (/ etc / skel)
명령은 adduser
및 addgroup
입니다.
다음은 busybox 환경 (알파인) 및 Debian 기반 환경 (Ubuntu 등)에서 사용할 수있는 Docker 용 템플릿입니다.
ENV USER=docker
ENV UID=12345
ENV GID=23456
RUN addgroup --gid "$GID" "$USER" \
&& adduser \
--disabled-password \
--gecos "" \
--home "$(pwd)" \
--ingroup "$USER" \
--no-create-home \
--uid "$UID" \
"$USER"
다음 사항에 유의하십시오.
--disabled-password
암호를 묻지 않습니다.--gecos ""
데비안 기반 시스템에서 "전체 이름"등의 프롬프트를 우회합니다.--home "$(pwd)"
사용자의 집을 WORKDIR로 설정합니다. 이것을 원하지 않을 수도 있습니다.--no-create-home
cruft가 디렉토리로 복사되는 것을 방지합니다./etc/skel
이러한 애플리케이션에 대한 사용법 설명 에는 adduser 및 addgroup 에 대한 코드에 있는 긴 플래그 가 없습니다 .
The following long-form flags should work both in alpine as well as debian-derivatives:
adduser
BusyBox v1.28.4 (2018-05-30 10:45:57 UTC) multi-call binary.
Usage: adduser [OPTIONS] USER [GROUP]
Create new user, or add USER to GROUP
--home DIR Home directory
--gecos GECOS GECOS field
--shell SHELL Login shell
--ingroup GRP Group (by name)
--system Create a system user
--disabled-password Don't assign a password
--no-create-home Don't create home directory
--uid UID User id
One thing to note is that if --ingroup
isn't set then the GID is assigned to match the UID. If the GID corresponding to the provided UID already exists adduser will fail.
addgroup
BusyBox v1.28.4 (2018-05-30 10:45:57 UTC) multi-call binary.
Usage: addgroup [-g GID] [-S] [USER] GROUP
Add a group or add a user to a group
--gid GID Group id
--system Create a system group
I discovered all of this while trying to write my own alternative to the fixuid project for running containers as the hosts UID/GID.
My entrypoint helper script can be found on GitHub.
The intent is to prepend that script as the first argument to ENTRYPOINT
which should cause Docker to infer UID and GID from a relevant bind mount.
An environment variable "TEMPLATE" may be required to determine where the permissions should be inferred from.
(At the time of writing I don't have documentation for my script. It's still on the todo list!!)
ReferenceURL : https://stackoverflow.com/questions/49955097/how-do-i-add-a-user-when-im-using-alpine-as-a-base-image
'Programing' 카테고리의 다른 글
CMake target_link_libraries 인터페이스 종속성 (0) | 2021.01.06 |
---|---|
값별로 정렬 된 키 목록에 대한 Java 8 스트림 맵 (0) | 2021.01.06 |
WPF 그리드에서 자식 컨트롤 사이의 간격 (0) | 2021.01.06 |
JavaScript에서 큰 숫자가 잘못 반올림 됨 (0) | 2021.01.06 |
composer에서 설치 한 phpunit을 어떻게 사용하나요? (0) | 2021.01.06 |