Komutlar adduser
ve addgroup
.
İşte meşgul kutu ortamlarında (alpine) ve Debian tabanlı ortamlarda (Ubuntu, vb.) Kullanabileceğiniz Docker için bir şablon:
ENV USER=docker
ENV UID=12345
ENV GID=23456
RUN adduser \
--disabled-password \
--gecos "" \
--home "$(pwd)" \
--ingroup "$USER" \
--no-create-home \
--uid "$UID" \
"$USER"
Aşağıdakilere dikkat et:
--disabled-password
şifre sorulmasını engeller
--gecos ""
Debian tabanlı sistemlerde "Tam Ad" vb. istemini atlatır
--home "$(pwd)"
kullanıcının evini WORKDIR olarak ayarlar. Bunu istemeyebilirsiniz.
--no-create-home
bozukluğun dizine kopyalanmasını engeller /etc/skel
Bu uygulamaların kullanım açıklamasında , adduser ve addgroup için kodda bulunan uzun bayraklar eksik .
Aşağıdaki uzun biçimli bayraklar hem alpin hem de debian türevlerinde çalışmalıdır:
Kullanıcı Ekle
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
Unutulmaması gereken bir nokta, --ingroup
ayarlanmamışsa GID'nin UID ile eşleşecek şekilde atanacağıdır. Sağlanan UID'ye karşılık gelen GID zaten varsa, adduser başarısız olur.
grup ekle
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
Tüm bunları, kapsayıcıları UID / GID olarak çalıştırmak için fixuid projesine kendi alternatifimi yazmaya çalışırken keşfettim .
Giriş noktası yardımcı komut dosyam GitHub'da bulunabilir.
Amaç, Docker'ın ENTRYPOINT
ilgili bir bağlama bağlantısından UID ve GID'yi çıkarmasına neden olması gereken ilk argüman olarak bu betiğin başına eklemektir.
İzinlerin nereden çıkarılacağını belirlemek için bir ortam değişkeni "ŞABLON" gerekli olabilir.
(Yazarken betiğim için dokümantasyonum yok. Hala yapılacaklar listesinde !!)
USER 405
Alpine Linux içindeki konuk kullanıcı olan şunu kullanarak değiştirebilirsiniz .