diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 63aa5b9..e8c5835 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -103,4 +103,4 @@ jobs: with: persist-credentials: false - name: Build controller image - run: make docker + run: make docker BUILD_PROFILE=debug diff --git a/Dockerfile b/Dockerfile index 00125b4..a670aff 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,6 +17,7 @@ RUN --mount=type=cache,id=agentdesktop-pnpm,target=/pnpm/store \ FROM docker.io/library/rust:1.97.1-trixie AS builder ARG TARGETARCH +ARG BUILD_PROFILE=release WORKDIR /app COPY Cargo.toml Cargo.lock rust-toolchain.toml ./ COPY crates ./crates @@ -24,8 +25,12 @@ COPY --from=ui /app/frontend/controller/dist frontend/controller/dist RUN --mount=type=cache,id=agentdesktop-target-${TARGETARCH},target=/app/target \ --mount=type=cache,id=agentdesktop-cargo-registry,target=/usr/local/cargo/registry \ --mount=type=cache,id=agentdesktop-cargo-git,target=/usr/local/cargo/git \ - cargo build --locked --release --package agentdesktop-controller && \ - cp target/release/agentdesktop-controller /agentdesktop-controller + case "${BUILD_PROFILE}" in \ + release) cargo build --locked --release --package agentdesktop-controller ;; \ + debug) cargo build --locked --package agentdesktop-controller ;; \ + *) echo "unsupported BUILD_PROFILE: ${BUILD_PROFILE}" >&2; exit 1 ;; \ + esac && \ + cp "target/${BUILD_PROFILE}/agentdesktop-controller" /agentdesktop-controller FROM cgr.dev/chainguard/glibc-dynamic:latest COPY --from=builder /agentdesktop-controller /agentdesktop-controller diff --git a/Makefile b/Makefile index 88b21e6..66bec03 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,5 @@ IMAGE ?= agentdesktop-controller:dev +BUILD_PROFILE ?= release .PHONY: build install test check lint frontend frontend-check desktop desktop-check format gen generate-schema docker clean @@ -47,7 +48,7 @@ generate-schema: cargo xtask schema docker: - docker build --tag $(IMAGE) . + docker build --build-arg BUILD_PROFILE=$(BUILD_PROFILE) --tag $(IMAGE) . clean: cargo clean