Ramjet is a relay consumer that supports configurable forward and track collections, as well as record reconciliation.
event-stream relay firehose riblt atprotocol
13
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 57 lines 2.2 kB view raw
1# Multi-stage build for ramjet 2# Builds and installs all 7 binaries from the project 3 4# Build stage - use 1.94 to match rust-version in Cargo.toml 5FROM rust:1.94-slim-bookworm AS builder 6 7# Install system dependencies needed for building 8RUN apt-get update && apt-get install -y \ 9 pkg-config \ 10 libssl-dev \ 11 && rm -rf /var/lib/apt/lists/* 12 13# Set working directory 14WORKDIR /usr/src/app 15 16# Copy the entire project 17COPY . . 18 19# Build all binaries in release mode 20RUN cargo build --release --bins 21 22# Runtime stage - use distroless for minimal attack surface 23FROM gcr.io/distroless/cc-debian12 24 25# Create directory for binaries 26WORKDIR /usr/local/bin 27 28# Copy all built binaries from builder stage 29COPY --from=builder /usr/src/app/target/release/ramjet . 30COPY --from=builder /usr/src/app/target/release/ramjet_consumer . 31COPY --from=builder /usr/src/app/target/release/ramjet_data . 32COPY --from=builder /usr/src/app/target/release/ramjet_dictgen . 33COPY --from=builder /usr/src/app/target/release/ramjet_forecast . 34COPY --from=builder /usr/src/app/target/release/ramjet_writer . 35COPY --from=builder /usr/src/app/target/release/rjtop . 36 37# Default to the main service binary 38# Users can override with specific binary: docker run <image> ramjet_consumer --help 39# docker run <image> ramjet --help 40# docker run <image> ramjet_consumer --help 41# docker run <image> ramjet_data --help 42# docker run <image> ramjet_dictgen --help 43# docker run <image> ramjet_forecast --help 44# docker run <image> ramjet_writer --help 45# docker run <image> rjtop --help 46CMD ["ramjet", "--help"] 47 48# Add labels for documentation 49LABEL org.opencontainers.image.title="ramjet" 50LABEL org.opencontainers.image.description="ATProtocol event-stream, record, and blob service built on fjall" 51LABEL org.opencontainers.image.authors="Nick Gerakines <nick.gerakines@gmail.com>" 52LABEL org.opencontainers.image.source="https://tangled.org/ngerakines.me/ramjet" 53LABEL org.opencontainers.image.version="1.2.0" 54LABEL org.opencontainers.image.licenses="MIT" 55 56# Document available binaries 57LABEL binaries="ramjet,ramjet_consumer,ramjet_data,ramjet_dictgen,ramjet_forecast,ramjet_writer,rjtop"