mirror of
https://codeberg.org/Toasterson/solstice-ci.git
synced 2026-04-10 13:20:41 +00:00
This commit introduces: - A production-ready Podman Compose stack using Traefik as a reverse proxy with Let's Encrypt integration. - Per-environment logical separation for Postgres, RabbitMQ, and MinIO services. - New deployment utilities, including a `.env.sample` template, `compose.yml`, and setup scripts for MinIO and Postgres. - Updates to `github-integration` HTTP server with basic webhook handling using `axum` and configurable paths. - Adjustments to packaging tasks for better tarball generation via `git archive`. - Expanded dependencies for `PKGBUILD` to support SQLite and PostgreSQL libraries. - Containerfiles for orchestrator and integration services to enable Rust multi-stage builds without sccache. This enables simplified and secure CI deployments with automatic routing, TLS, and volume persistence.
25 lines
1.1 KiB
Docker
25 lines
1.1 KiB
Docker
# syntax=docker/dockerfile:1.7
|
|
# Build Solstice Forge Integration using upstream official images (no sccache)
|
|
|
|
FROM docker.io/library/rust:bookworm AS builder
|
|
ENV CARGO_HOME=/cargo
|
|
WORKDIR /work
|
|
# Install protoc for tonic/prost builds
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends protobuf-compiler ca-certificates \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
# Configure cargo target-dir so it can be cached between layers
|
|
RUN mkdir -p /cargo && printf "[build]\ntarget-dir = \"/cargo/target\"\n" > /cargo/config.toml
|
|
COPY Cargo.toml ./
|
|
COPY crates ./crates
|
|
RUN --mount=type=cache,target=/cargo/registry \
|
|
--mount=type=cache,target=/cargo/git \
|
|
--mount=type=cache,target=/cargo/target \
|
|
cargo build --release -p forge-integration && cp /cargo/target/release/forge-integration /forge-integration
|
|
|
|
FROM docker.io/library/debian:bookworm-slim
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends ca-certificates \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
COPY --from=builder /forge-integration /usr/local/bin/forge-integration
|
|
ENTRYPOINT ["/usr/local/bin/forge-integration"]
|