FROM rust:1.85-bookworm AS builder
RUN apt-get update && \
apt-get install -y --no-install-recommends cmake && \
rm -rf /var/lib/apt/lists/*
RUN mkdir -p /usr/local/cargo && \
printf '[source.crates-io]\nreplace-with = "rsproxy-sparse"\n\n[source.rsproxy-sparse]\nregistry = "sparse+https://rsproxy.cn/index/"\n' > /usr/local/cargo/config.toml
WORKDIR /app
COPY Cargo.toml ./
COPY src/ ./src/
RUN mkdir -p src && \
echo 'fn main() {}' > src/main.rs && \
cargo build --release && \
rm -rf src
COPY src/ ./src/
RUN touch src/main.rs && cargo build --release
FROM openeuler/openeuler:24.03
RUN dnf install -y ca-certificates openssl-libs && \
dnf clean all
COPY --from=builder /app/target/release/gateway-lb /usr/bin/gateway-lb
COPY config.yaml /etc/gateway/routes.yaml
ENV CONFIG_PATH=/etc/gateway/routes.yaml
EXPOSE 6198 6443
CMD ["gateway-lb"]