Przeglądaj źródła

Fix Dockerfile healthchecks

spikecodes 4 lat temu
rodzic
commit
93ed1c6f0c
2 zmienionych plików z 8 dodań i 17 usunięć
  1. 7 14
      Dockerfile
  2. 1 3
      Dockerfile.arm64

+ 7 - 14
Dockerfile

@@ -1,15 +1,11 @@
 ####################################################################################################
 ## Builder
 ####################################################################################################
-FROM rust:latest AS builder
+FROM rust:alpine AS builder
 
-RUN rustup target add x86_64-unknown-linux-musl
-RUN apt update && apt install -y musl-tools musl-dev
-RUN update-ca-certificates
+RUN apk add --no-cache musl-dev
 
-RUN adduser --home /nonexistent --no-create-home --disabled-password libreddit
-
-WORKDIR /usr/src/libreddit
+WORKDIR /libreddit
 
 COPY . .
 
@@ -18,26 +14,23 @@ RUN cargo build --target x86_64-unknown-linux-musl --release
 ####################################################################################################
 ## Final image
 ####################################################################################################
-FROM scratch
-
-# Import user information from builder.
-COPY --from=builder /etc/passwd /etc/passwd
-COPY --from=builder /etc/group /etc/group
+FROM alpine:latest
 
 # Import ca-certificates from builder
 COPY --from=builder /usr/share/ca-certificates /usr/share/ca-certificates
 COPY --from=builder /etc/ssl/certs /etc/ssl/certs
 
 # Copy our build
-COPY --from=builder /usr/src/libreddit/target/x86_64-unknown-linux-musl/release/libreddit /usr/local/bin/libreddit
+COPY --from=builder /libreddit/target/x86_64-unknown-linux-musl/release/libreddit /usr/local/bin/libreddit
 
 # Use an unprivileged user.
+RUN adduser --home /nonexistent --no-create-home --disabled-password libreddit
 USER libreddit
 
 # Tell Docker to expose port 8080
 EXPOSE 8080
 
 # Run a healthcheck every minute to make sure Libreddit is functional
-HEALTHCHECK --interval=1m --timeout=3s CMD curl -f http://localhost:8080/settings || exit 1
+HEALTHCHECK --interval=1m --timeout=3s CMD wget --spider --q http://localhost:8080/settings || exit 1
 
 CMD ["libreddit"]

+ 1 - 3
Dockerfile.arm64

@@ -16,8 +16,6 @@ RUN cargo install --path .
 ####################################################################################################
 FROM alpine:latest
 
-RUN apk add --no-cache curl
-
 # Copy our build
 COPY --from=builder /usr/local/cargo/bin/libreddit /usr/local/bin/libreddit
 
@@ -29,6 +27,6 @@ USER libreddit
 EXPOSE 8080
 
 # Run a healthcheck every minute to make sure Libreddit is functional
-HEALTHCHECK --interval=1m --timeout=3s CMD curl -f http://localhost:8080/settings || exit 1
+HEALTHCHECK --interval=1m --timeout=3s CMD wget --spider --q http://localhost:8080/settings || exit 1
 
 CMD ["libreddit"]