From 36270c7a3f564bcdbd0fa6e81c78b01ce3d140cb Mon Sep 17 00:00:00 2001 From: Kristofers Solo Date: Fri, 19 Sep 2025 20:05:24 +0300 Subject: [PATCH] feat: dockerize --- .dockerignore | 6 ++++++ Dockerfile | 31 +++++++++++++++++++++++++++++++ docker-compose.yml | 14 ++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..705ea3e --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +.env +target/ +tests/ +Dockerfile +README.md +LICENSE diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e91880b --- /dev/null +++ b/Dockerfile @@ -0,0 +1,31 @@ +FROM rust:1.90-slim-trixie as builder +WORKDIR /app + +COPY Cargo.toml Cargo.lock ./ +COPY . . + +RUN apt-get update -y \ + && apt-get install -y --no-install-recommends \ + pkg-config libssl-dev ca-certificates \ + && rm -rf /var/lib/apt/lists/* + +RUN cargo build --release + +FROM python:3-slim AS runtime +FROM python:3.12-slim-trixie +COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ + +ENV TZ=UTC +ENV RUST_LOG=info +ENV PATH=/home/app/.local/bin:$PATH + +RUN useradd --create-home --shell /bin/bash app +WORKDIR /home/app +USER app + +RUN uv tool install instaloader \ + && instaloader --version + +COPY --from=builder /app/target/release/tg-relay-rs /usr/local/bin/tg-relay-rs + +CMD ["/usr/local/bin/tg-relay-rs"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..19277b1 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,14 @@ +services: + bot: + build: + context: . + dockerfile: Dockerfile + args: + BINARY_NAME: tg-relay-rs + environment: + TELOXIDE_TOKEN: ${TELOXIDE_TOKEN} + RUST_LOG: ${RUST_LOG:-info} + restart: unless-stopped + # If you need persistent storage (e.g. caching): + volumes: + - ./data:/app/data