FROM rust:1.94-alpine AS router-builder RUN apk add --no-cache musl-dev WORKDIR /build COPY src-router/Cargo.toml src-router/Cargo.lock ./ COPY src-router/src ./src RUN cargo build --release --locked FROM caddy:2-alpine RUN apk add --no-cache docker-cli WORKDIR /app COPY --from=router-builder /build/target/release/opencodeui-router /usr/local/bin/opencodeui-router COPY docker/entrypoint-gateway.sh /app/entrypoint.sh RUN chmod +x /app/entrypoint.sh COPY docker/Caddyfile.gateway /etc/caddy/Caddyfile RUN touch /etc/caddy/routes.conf && touch /etc/caddy/preview.conf EXPOSE 6658 6659 CMD ["/app/entrypoint.sh"]