mirror of https://github.com/docker/docs.git
scout(policy): diff compliant/non-compliant Dockerfile, non-root user
Signed-off-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>
This commit is contained in:
parent
513c588368
commit
fea5253efa
|
@ -239,3 +239,36 @@ specify a non-root default user for the runtime stage.
|
||||||
To make your images compliant with this policy, use the
|
To make your images compliant with this policy, use the
|
||||||
[`USER`](../../engine/reference/builder.md#user) Dockerfile instruction to set
|
[`USER`](../../engine/reference/builder.md#user) Dockerfile instruction to set
|
||||||
a default user that doesn't have root privileges for the runtime stage.
|
a default user that doesn't have root privileges for the runtime stage.
|
||||||
|
|
||||||
|
The following Dockerfile snippets shows the difference between a compliant and
|
||||||
|
non-compliant image.
|
||||||
|
|
||||||
|
{{< tabs >}}
|
||||||
|
{{< tab name="Non-compliant" >}}
|
||||||
|
|
||||||
|
```dockerfile
|
||||||
|
FROM alpine AS builder
|
||||||
|
COPY Makefile ./src /
|
||||||
|
RUN make build
|
||||||
|
|
||||||
|
FROM alpine AS runtime
|
||||||
|
COPY --from=builder bin/production /app
|
||||||
|
ENTRYPOINT ["/app/production"]
|
||||||
|
```
|
||||||
|
|
||||||
|
{{< /tab >}}
|
||||||
|
{{< tab name="Compliant" >}}
|
||||||
|
|
||||||
|
```dockerfile {hl_lines=7}
|
||||||
|
FROM alpine AS builder
|
||||||
|
COPY Makefile ./src /
|
||||||
|
RUN make build
|
||||||
|
|
||||||
|
FROM alpine AS runtime
|
||||||
|
COPY --from=builder bin/production /app
|
||||||
|
USER nonroot
|
||||||
|
ENTRYPOINT ["/app/production"]
|
||||||
|
```
|
||||||
|
|
||||||
|
{{< /tab >}}
|
||||||
|
{{< /tabs >}}
|
||||||
|
|
Loading…
Reference in New Issue