Nie rozumiem, jak w końcu działa to USER w #docker. W dokumentacji jest napisane:
The USER instruction sets the user name (or UID) and optionally the user group (or GID) to use when running the image and for any RUN, CMD and ENTRYPOINT instructions that follow it in the Dockerfile.
@Djelon: z jednej strony to ma sens. Gdybym nadpisał entrypoint w docker run, to intuicyjnie powinno być to wykonane pod ostatnio podanym userem. Z drugiej strony ten opis w dokumentacji jest wg mnie mylący.
@Feargan: Dlatego, że CMD albo ENTRYPOINT może być tylko jedno i jest to komenda, która się uruchomi jak odpali się klontener. Kontener jest zbudowany tak, że USER to user, bo "przykrywa" to poprzednią komendę USER. Jak zmiast ENTRYPOINT dassz RUN to dostaniesz "root".
Właściwie to może być ich wiele, tylko te wypisane jako ostatnie będą brane pod uwagę ¯\_(ツ)_/¯ Finalnie, tak - zostajemy z jednym entrypoint w zbudowanym obrazie.
USERw #docker. W dokumentacji jest napisane:Mam taki
Dockerfile:Buduję to jako obraz
entrypoint-testi odpalam:Dlaczego program podany w
ENTRYPOINTuruchamia się poduser, a nieroot, tak jak mu kazałem?#devops #nieprogramowanie #sysadmin #linux
Komentarz usunięty przez autora
FROM alpine as root_baseRUN adduser user
FROM root_baseUSER user
entrypointwdocker run, to intuicyjnie powinno być to wykonane pod ostatnio podanym userem. Z drugiej strony ten opis w dokumentacji jest wg mnie mylący.Właściwie to może być ich wiele, tylko te wypisane jako ostatnie będą brane pod uwagę ¯\_(ツ)_/¯
Finalnie, tak - zostajemy z jednym
entrypointw zbudowanym obrazie.