Signed-off-by: Slava Barinov <rayslava@gmail.com>
@@ -36,3 +36,4 @@ pkg-config = { version = "0.3", optional = true }
default = [ "telegram" ]
tv = [ "cc", "pkg-config" ]
telegram = [ "teloxide", "log", "pretty_env_logger", "tokio", "tokio-stream", "derive_more", "thiserror", "futures", "anyhow" ]
+docker = []
@@ -0,0 +1,22 @@
+# Build
+FROM rust:1.74.0 AS builder
+WORKDIR /usr/src/
+RUN rustup target add x86_64-unknown-linux-gnu
+RUN apt update && apt install libssl-dev
+
+RUN USER=root cargo new receqif
+WORKDIR /usr/src/receqif
+COPY Cargo.toml Cargo.lock ./
+RUN cargo build --release --features "docker"
+COPY src ./src
+RUN cargo install --target x86_64-unknown-linux-gnu --features "docker" --path .
+# Bundle
+FROM gcr.io/distroless/cc-debian12
+COPY --from=builder /usr/local/cargo/bin/receqif /bin/receqif
+USER 1000
+ARG TELEGRAM_TOKEN
+ENV TELOXIDE_TOKEN=$TELEGRAM_TOKEN
+VOLUME ["/etc/receqif"]
+ENTRYPOINT ["/bin/receqif", "--telegram"]
@@ -17,8 +17,12 @@ pub struct User {
db: PickleDb,
}
+#[cfg(not(feature = "docker"))]
pub const DEFAULT_DB_PATH: &str = "~/.config/receqif/";
+#[cfg(feature = "docker")]
+pub const DEFAULT_DB_PATH: &str = "/etc/receqif/";
impl Drop for User {
fn drop(&mut self) {
self.db.set("catmap", &self.catmap).unwrap();