From c105ac80cd33b550f560c7384344655af7cbbb82 Mon Sep 17 00:00:00 2001 From: Lucas Schwiderski Date: Fri, 20 Sep 2024 10:31:19 +0200 Subject: [PATCH] Add Dockerfile --- .dockerignore | 1 + Cargo.toml | 4 ++++ Dockerfile | 27 +++++++++++++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..2f7896d --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +target/ diff --git a/Cargo.toml b/Cargo.toml index 2610947..9d7f73e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,3 +17,7 @@ tokio = { version = "1.40.0", features = ["rt", "sync"] } tracing = "0.1.40" tracing-error = "0.2.0" tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } + +[profile.release] +strip = true +lto = true diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..214f567 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,27 @@ +FROM rust:1.81.0-slim AS build + +WORKDIR /src + +RUN set -ex; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + make \ + libluajit-5.1-dev \ + ; \ + rm -rf /var/lib/apt/lists/*; + +COPY . /src +RUN --mount=type=cache,id=cargo-registry,target=/cargo/registry \ + --mount=type=cache,id=cargo-target,target=/src/target \ + cargo build --release --locked && cp /src/target/release/ntfy-collector /src/; + +FROM gcr.io/distroless/cc-debian12 AS final + +WORKDIR /ntfy-collector +ENV CONFIG_PATH=/ntfy-collector/lua/config.lua +ENV LUA_PATH=/ntfy-collector/lua/?.lua;/ntfy-collector/lua/?/init.lua + +COPY --from=build /src/ntfy-collector /usr/bin/ntfy-collector +COPY ./lua ./lua + +CMD ["/usr/bin/ntfy-collector"]