usepod-agent 0.3.4

Use Pod marketplace provider agent — connects local inference backends (vLLM, llama.cpp, LM Studio, Ollama) to the Use Pod coordinator and earns USDC for served jobs.
Documentation
# syntax=docker/dockerfile:1
#
# Use Pod provider-agent — multi-stage container build.
#
# Build context: repo root.
#   docker build -t usepod/provider-agent:dev .

# --- Build stage ---
FROM rust:1.95-slim-bookworm AS builder
WORKDIR /app

RUN apt-get update \
    && apt-get install -y --no-install-recommends pkg-config \
    && rm -rf /var/lib/apt/lists/*

# Manifests first for dependency caching.
COPY Cargo.toml Cargo.lock* ./

RUN mkdir -p src \
    && echo 'fn main() {}' > src/main.rs \
    && echo 'pub fn _stub() {}' > src/lib.rs

RUN --mount=type=cache,target=/usr/local/cargo/registry \
    --mount=type=cache,target=/usr/local/cargo/git \
    --mount=type=cache,target=/app/target \
    cargo build --release

# Real sources.
COPY src   src
COPY tests tests
COPY agent.example.toml agent.example.toml

RUN --mount=type=cache,target=/usr/local/cargo/registry \
    --mount=type=cache,target=/usr/local/cargo/git \
    --mount=type=cache,target=/app/target \
    touch src/main.rs src/lib.rs \
    && cargo build --release \
    && cp target/release/usepod-agent /usr/local/bin/usepod-agent \
    && strip /usr/local/bin/usepod-agent

# --- Runtime stage ---
FROM debian:bookworm-slim AS runtime
RUN apt-get update \
    && apt-get install -y --no-install-recommends ca-certificates \
    && rm -rf /var/lib/apt/lists/* \
    && groupadd --system usepod \
    && useradd --system --gid usepod --home-dir /var/lib/usepod-agent --shell /usr/sbin/nologin usepod \
    && install -d -o usepod -g usepod -m 0750 /var/lib/usepod-agent

COPY --from=builder /usr/local/bin/usepod-agent /usr/local/bin/usepod-agent

USER usepod
WORKDIR /var/lib/usepod-agent
VOLUME ["/var/lib/usepod-agent"]
EXPOSE 9090

ENTRYPOINT ["/usr/local/bin/usepod-agent"]
CMD ["run"]