Dockerfile templates for rust projects
This commit is contained in:
		
							
								
								
									
										46
									
								
								docker/distroless.Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								docker/distroless.Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | ||||
| #################################################################################################### | ||||
| ## Builder | ||||
| #################################################################################################### | ||||
| FROM rust:latest AS builder | ||||
|  | ||||
| RUN update-ca-certificates | ||||
|  | ||||
| # Create appuser | ||||
| ENV USER=small-rust | ||||
| ENV UID=10001 | ||||
|  | ||||
| RUN adduser \ | ||||
|     --disabled-password \ | ||||
|     --gecos "" \ | ||||
|     --home "/nonexistent" \ | ||||
|     --shell "/sbin/nologin" \ | ||||
|     --no-create-home \ | ||||
|     --uid "${UID}" \ | ||||
|     "${USER}" | ||||
|  | ||||
|  | ||||
| WORKDIR /app | ||||
|  | ||||
| COPY ./ . | ||||
|  | ||||
| # We no longer need to use the x86_64-unknown-linux-musl target | ||||
| RUN cargo build --release | ||||
|  | ||||
| #################################################################################################### | ||||
| ## Final image | ||||
| #################################################################################################### | ||||
| FROM gcr.io/distroless/cc | ||||
|  | ||||
| # Import from builder. | ||||
| COPY --from=builder /etc/passwd /etc/passwd | ||||
| COPY --from=builder /etc/group /etc/group | ||||
|  | ||||
| WORKDIR /app | ||||
|  | ||||
| # Copy our build | ||||
| COPY --from=builder /app/target/release/small-rust ./ | ||||
|  | ||||
| # Use an unprivileged user. | ||||
| USER small-rust:small-rust | ||||
|  | ||||
| CMD ["/app/small-rust"] | ||||
		Reference in New Issue
	
	Block a user