Om een docker applicatie niet als root uit te voeren, kan in de Dockerfile een optie meegegeven worden om een gebruiker aan te maken en dan de applicatie als die gebruiker uit te voeren.
Een standaard Dockerfile die de image als root zal uitvoeren:
FROM ubuntu:22.04 ARG DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y golang-go COPY app.go . RUN CGO_ENABLED=0 go build app.go CMD ["./app"]
Dezelfde Dockerfile maar nu met een specifieke gebruiker zonder root-rechten:
FROM ubuntu:22.04 ARG DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y golang-go RUN useradd -m appuser COPY app.go /home/appuser/ USER appuser WORKDIR /home/appuser RUN CGO_ENABLED=0 go build app.go CMD ["/home/appuser/app"]