루트로서 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
?