rift-http-proxy 0.1.0-RC12

Rift: high-performance HTTP chaos engineering proxy with Lua/Rhai/JavaScript scripting for fault injection.
# Dockerfile for using pre-built binaries from release workflow
# This is much faster than compiling in Docker (~seconds vs ~1 hour)
#
# Usage:
#   docker buildx build --platform linux/amd64 \
#     --build-arg BINARY_PATH=./rift-http-proxy \
#     -f Dockerfile.prebuilt .

FROM debian:bookworm-slim

# Build args for metadata
ARG VERSION=dev
ARG VCS_REF=unknown
ARG BUILD_DATE=unknown
ARG TARGETARCH

# Install CA certificates and curl for health checks
# Note: LuaJIT is only available on amd64 builds
RUN apt-get update && \
    apt-get install -y --no-install-recommends ca-certificates curl && \
    if [ "$TARGETARCH" = "amd64" ]; then \
        apt-get install -y --no-install-recommends libluajit-5.1-2; \
    fi && \
    rm -rf /var/lib/apt/lists/*

# Copy pre-built binary (provided via build context)
# The binary should be placed in the build context as 'rift-http-proxy'
COPY rift-http-proxy /usr/local/bin/rift
RUN chmod +x /usr/local/bin/rift

# OCI labels and metadata
LABEL \
  org.opencontainers.image.title="Rift HTTP Proxy" \
  org.opencontainers.image.description="Mountebank-compatible HTTP chaos engineering proxy" \
  org.opencontainers.image.url="https://github.com/EtaCassiopeia/rift" \
  org.opencontainers.image.source="https://github.com/EtaCassiopeia/rift" \
  org.opencontainers.image.version="$VERSION" \
  org.opencontainers.image.revision="$VCS_REF" \
  org.opencontainers.image.created="$BUILD_DATE" \
  org.opencontainers.image.licenses="Apache-2.0" \
  org.opencontainers.image.vendor="Rift"

# Create non-root user
RUN useradd -m -u 1000 rift

# Create default data and config directories
RUN mkdir -p /data /config && chown -R rift:rift /data /config

USER rift
WORKDIR /data

# Expose ports
EXPOSE 2525 9090 4545-4550 8080-8090

# Health check
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
  CMD curl -fsS http://localhost:${MB_PORT:-2525}/ >/dev/null || exit 1

# Environment variables
ENV MB_PORT=2525
ENV MB_HOST=0.0.0.0
ENV MB_LOGLEVEL=info
ENV RIFT_METRICS_PORT=9090

ENTRYPOINT ["/usr/local/bin/rift"]
CMD []