diff --git a/Dockerfile b/Dockerfile index 9412565..429574c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,16 +1,28 @@ -FROM alpine:3.19 +FROM rust:1.77.1-buster AS builder + +WORKDIR /app + +COPY ./ ./ + +RUN cargo build --release + +FROM debian:stable ARG TARGET -RUN apk add --no-cache curl +RUN apt-get update +RUN apt-get install -y ca-certificates wget -RUN curl -L https://github.com/redlib-org/redlib/releases/latest/download/redlib-${TARGET}.tar.gz | \ - tar xz -C /usr/local/bin/ +RUN apt-get clean -y; \ + rm -rf /var/lib/apt/lists/* /var/cache/apt/* + +COPY --from=builder /app/target/release/ /usr/local/bin RUN adduser --home /nonexistent --no-create-home --disabled-password redlib + USER redlib -# Tell Docker to expose port 8080 +# Tell Docker to expose port 808 EXPOSE 8080 # Run a healthcheck every minute to make sure redlib is functional diff --git a/Dockerfile.old b/Dockerfile.old new file mode 100644 index 0000000..9412565 --- /dev/null +++ b/Dockerfile.old @@ -0,0 +1,20 @@ +FROM alpine:3.19 + +ARG TARGET + +RUN apk add --no-cache curl + +RUN curl -L https://github.com/redlib-org/redlib/releases/latest/download/redlib-${TARGET}.tar.gz | \ + tar xz -C /usr/local/bin/ + +RUN adduser --home /nonexistent --no-create-home --disabled-password redlib +USER redlib + +# Tell Docker to expose port 8080 +EXPOSE 8080 + +# Run a healthcheck every minute to make sure redlib is functional +HEALTHCHECK --interval=1m --timeout=3s CMD wget --spider --q http://localhost:8080/settings || exit 1 + +CMD ["redlib"] +