| |
| FROM rust:1-slim-bookworm AS backend-builder |
| ARG USE_MIRROR=auto |
|
|
| |
| RUN if [ "$USE_MIRROR" = "true" ] || ( [ "$USE_MIRROR" = "auto" ] && ! timeout 3 bash -c "</dev/tcp/www.google.com/80" 2>/dev/null ); then \ |
| echo "Using Aliyun mirror for APT..."; \ |
| sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources || \ |
| sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list; \ |
| else \ |
| echo "Using default APT sources..."; \ |
| fi |
|
|
| |
| RUN apt-get update && apt-get install -y \ |
| pkg-config \ |
| build-essential \ |
| curl \ |
| wget \ |
| file \ |
| libssl-dev \ |
| libgtk-3-dev \ |
| libwebkit2gtk-4.1-dev \ |
| libayatana-appindicator3-dev \ |
| librsvg2-dev \ |
| libsoup-3.0-dev \ |
| libjavascriptcoregtk-4.1-dev \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| |
| ENV CARGO_HTTP_MULTIPLEXING=false |
| RUN if [ "$USE_MIRROR" = "true" ] || ( [ "$USE_MIRROR" = "auto" ] && ! timeout 3 bash -c "</dev/tcp/www.google.com/80" 2>/dev/null ); then \ |
| echo "Using Aliyun mirror for Cargo..."; \ |
| mkdir -p /root/.cargo && \ |
| echo "[source.crates-io]\nreplace-with = 'aliyun'\n\n[source.aliyun]\nregistry = \"sparse+https://mirrors.aliyun.com/crates.io-index/\"" > /root/.cargo/config.toml; \ |
| else \ |
| echo "Using default Cargo registry..."; \ |
| fi |
|
|
| WORKDIR /app |
| COPY src-tauri ./src-tauri |
| COPY src/locales ./src/locales |
|
|
| WORKDIR /app/src-tauri |
| RUN --mount=type=cache,target=/root/.cargo/registry \ |
| --mount=type=cache,target=/root/.cargo/git \ |
| --mount=type=cache,target=/app/src-tauri/target \ |
| cargo build --release --bin antigravity_tools && \ |
| cp target/release/antigravity_tools /tmp/antigravity_tools |
|
|
| |
| ARG FRONTEND_IMAGE=antigravity-manager:latest |
| FROM ${FRONTEND_IMAGE} AS frontend-prebuilt |
|
|
| |
| FROM debian:bookworm-slim |
| ARG USE_MIRROR=auto |
| WORKDIR /app |
|
|
| |
| RUN if [ "$USE_MIRROR" = "true" ] || ( [ "$USE_MIRROR" = "auto" ] && ! timeout 3 bash -c "</dev/tcp/www.google.com/80" 2>/dev/null ); then \ |
| echo "Using Aliyun mirror for APT..."; \ |
| sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources || \ |
| sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list; \ |
| else \ |
| echo "Using default APT sources..."; \ |
| fi |
|
|
| |
| RUN apt-get update && apt-get install -y \ |
| libssl3 \ |
| libsqlite3-0 \ |
| ca-certificates \ |
| libgtk-3-0 \ |
| libwebkit2gtk-4.1-0 \ |
| libayatana-appindicator3-1 \ |
| librsvg2-2 \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| |
| COPY --from=backend-builder /tmp/antigravity_tools /app/antigravity-tools |
|
|
| |
| COPY --from=frontend-prebuilt /app/dist /app/dist |
|
|
| |
| ENV ABV_DIST_PATH=/app/dist |
| ENV RUST_LOG=info |
| ENV PORT=8045 |
|
|
| |
| EXPOSE 8045 |
|
|
| |
| ENTRYPOINT ["/app/antigravity-tools", "--headless"] |
|
|