Dockerfile - USERディレクティブが原因でシェルがホームディレクトリに切り替えられますか?

Dockerfile - USERディレクティブが原因でシェルがホームディレクトリに切り替えられますか?

ルートとして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

2番目の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/someteamWORKDIR $HOMEadduser

2)

私たちは指示する必要がありますかchown

ベストアンサー1

おすすめ記事