![Dockerfile - USER 지시문으로 인해 셸이 홈 디렉터리로 전환됩니까?](https://linux55.com/image/158703/Dockerfile%20-%20USER%20%EC%A7%80%EC%8B%9C%EB%AC%B8%EC%9C%BC%EB%A1%9C%20%EC%9D%B8%ED%95%B4%20%EC%85%B8%EC%9D%B4%20%ED%99%88%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EB%A1%9C%20%EC%A0%84%ED%99%98%EB%90%A9%EB%8B%88%EA%B9%8C%3F.png)
루트로서 ansible을 사용하여 docker 컨테이너를 시작합니다.
FROM python:3.7-alpine3.9
ENV HOME /home/someteam
RUN apk add --no-cache --virtual .build-deps python3-dev gcc linux-headers musl-dev
RUN addgroup someteam --gid=5566; \
adduser -G someteam -Du 5566 -d /home/someteam -m -s /bin/bash someteam; \
chown -R someteam $HOME
USER someteam
ADD script.sh /home/someteam/script.sh
ENTRYPOINT ["/home/envteam/script.sh"]
로컬 테스트의 오류는 다음과 같습니다.
adduser: unrecognized option: d
BusyBox v1.29.3 (2019-01-24 07:45:07 UTC) multi-call binary.
Usage: adduser [OPTIONS] USER [GROUP]
Create new user, or add USER to GROUP
-h DIR Home directory
-g GECOS GECOS field
-s SHELL Login shell
-G GRP Group
-S Create a system user
-D Don't assign a password
-H Don't create home directory
-u UID User id
-k SKEL Skeleton directory (/etc/skel)
chown: unknown user someteam
두 번째 RUN
명령어를 실행하기 전에 whoami
다음과 같습니다 .root
문제는 ansible을 사용하여 docker 컨테이너를 시작할 때 쉘 명령 run이 script.sh
상대 경로를 사용하지 않는다는 것입니다.
- name: Run docker container from ansible
command: docker container run --rm -e SOMETHING={{somthing}} 111112223333.dkr.ecr.us-east-1.amazonaws.com/someteamteam/deploy:v1
1)
ADD
명령이 실행될 것으로 예상됩니다 . 셸을 다음으로 전환 /home/someteam
하시겠습니까 ? 아니면 여전히 필요한가요 ? 다음 과 함께 사용되는 중복 옵션USER someteam
/home/someteam
WORKDIR $HOME
adduser
2)
우리가 지시해야 합니까 chown
?