# syntax=docker/dockerfile:1 FROM golang:1.26.2-alpine AS golang_cgo ENV CGO_ENABLED=1 ENV GO_LDFLAGS="-linkmode external -extldflags '-static'" RUN apk add --no-cache build-base FROM golang_cgo AS dolt_build RUN apk add --no-cache icu-dev icu-static COPY dolt/go/go.mod /build/dolt/go/ WORKDIR /build/dolt/go/ RUN go mod download COPY dolt/go/ /build/dolt/go/ RUN go build -tags icu_static -ldflags "$GO_LDFLAGS" -o /build/bin/dolt ./cmd/dolt FROM golang_cgo AS go_clients_build COPY dolt/integration-tests/mysql-client-tests/go /build/go/ WORKDIR /build/go/ RUN go build -ldflags "$GO_LDFLAGS" -o /build/bin/mysql-client-test COPY dolt/integration-tests/mysql-client-tests/go-mysql/ /build/go-mysql/ WORKDIR /build/go-mysql/ RUN go build -ldflags "$GO_LDFLAGS" -o /build/bin/sql-driver-mysql-test FROM rust:1.90-alpine3.22 AS rust_clients_build RUN apk add --no-cache musl-dev COPY dolt/integration-tests/mysql-client-tests/rust/ /build/rust/ WORKDIR /build/rust/ RUN cargo build --release --target-dir /build/bin/ && cargo clean # exe is in release/ FROM debian:bookworm-slim AS dotnet_clients_build RUN apt-get update && apt-get install -y wget gnupg ca-certificates && rm -rf /var/lib/apt/lists/* RUN wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ && dpkg -i packages-microsoft-prod.deb \ && rm packages-microsoft-prod.deb RUN apt-get update && apt-get install -y dotnet-sdk-9.0 && rm -rf /var/lib/apt/lists/* COPY dolt/integration-tests/mysql-client-tests/dotnet/MySqlClient/*.csproj /build/dotnet/MySqlClient/ WORKDIR /build/dotnet/MySqlClient/ RUN dotnet restore COPY dolt/integration-tests/mysql-client-tests/dotnet/MySqlClient/ /build/dotnet/MySqlClient/ RUN dotnet publish -c Release -o /build/bin --no-restore COPY dolt/integration-tests/mysql-client-tests/dotnet/MySqlConnector/*.csproj /build/dotnet/MySqlConnector/ WORKDIR /build/dotnet/MySqlConnector/ RUN dotnet restore COPY dolt/integration-tests/mysql-client-tests/dotnet/MySqlConnector/ /build/dotnet/MySqlConnector/ RUN dotnet publish -c Release -o /build/bin --no-restore # devart dotconnect reqs a license so we've skipped it here FROM debian:bookworm-slim AS c_clients_build # default-libmysqlclient-dev uses libmariadb under the hood but here we test both header interfaces RUN apt-get update && apt-get install -y default-libmysqlclient-dev libmariadb-dev unixodbc-dev odbcinst wget gcc make && rm -rf /var/lib/apt/lists/* RUN wget --progress=dot:giga https://dlm.mariadb.com/4465891/Connectors/odbc/connector-odbc-3.2.7/mariadb-connector-odbc_3.2.7-1+maria~bookworm_amd64.deb \ && dpkg -i mariadb-connector-odbc_3.2.7-1+maria~bookworm_amd64.deb || apt-get install -y -f \ && rm mariadb-connector-odbc_3.2.7-1+maria~bookworm_amd64.deb \ && odbcinst -i -d -f /dev/stdin <