diff --git a/docker/linux_amd64/alpine/Dockerfile b/docker/linux_amd64/alpine/Dockerfile new file mode 100644 index 0000000..212c702 --- /dev/null +++ b/docker/linux_amd64/alpine/Dockerfile @@ -0,0 +1,60 @@ +FROM alpine:3.20 + +ARG DUCKDB_VER=v1.1.3 +ARG vcpkg_url="https://github.com/microsoft/vcpkg.git" +ARG vcpkg_commit="a1a1cbc975abf909a6c8985a6a2b8fe20bbd9bd6" + +# Install build dependencies +RUN apk update && \ + apk add --no-cache \ + bash \ + build-base \ + ccache \ + cmake \ + curl \ + git \ + g++ \ + linux-headers \ + make \ + ninja-build \ + perl \ + pkgconfig \ + python3 \ + rustup \ + tar \ + unzip \ + zip + +RUN ln -s /usr/lib/ninja-build/bin/ninja /usr/bin/ninja + +ENV VCPKG_FORCE_SYSTEM_BINARIES=1 +RUN mkdir /vcpkg && \ + cd /vcpkg && \ + git init && \ + git remote add origin $vcpkg_url && \ + git fetch origin $vcpkg_commit && \ + git checkout $vcpkg_commit && \ + ./bootstrap-vcpkg.sh +ENV VCPKG_ROOT=/vcpkg +ENV VCPKG_TOOLCHAIN_PATH=/vcpkg/scripts/buildsystems/vcpkg.cmake + +# Common environment variables +ENV GEN=ninja + +# Specify where we expect the extension to be mounted and use that as working dir +VOLUME /duckdb_build_dir +WORKDIR /duckdb_build_dir + +# Mount for ccache to allow restoring ccache in GH actions +VOLUME /ccache_dir +ENV CCACHE_DIR=/ccache_dir +ENV CCACHE_COMPRESS=TRUE +ENV CCACHE_COMPRESSLEVEL=6 +ENV CCACHE_MAXSIZE=400M + +# extension-ci needs rust? + +# Install the Rust toolchain +RUN rustup-init -y --default-toolchain stable + +RUN git clone --branch $DUCKDB_VER https://github.com/duckdb/extension-ci-tools diff --git a/docker/linux_amd64/alpine/env.txt b/docker/linux_amd64/alpine/env.txt new file mode 100644 index 0000000..a914e89 --- /dev/null +++ b/docker/linux_amd64/alpine/env.txt @@ -0,0 +1,8 @@ +VCPKG_TARGET_TRIPLET=x64-linux +BUILD_SHELL=0 +OPENSSL_ROOT_DIR=/duckdb_build_dir/build/release/vcpkg_installed/x64-linux +OPENSSL_DIR=/duckdb_build_dir/build/release/vcpkg_installed/x64-linux +OPENSSL_USE_STATIC_LIBS=true +DUCKDB_PLATFORM=linux-x64 +DUCKDB_GIT_VERSION=1.1.3 +LINUX_CI_IN_DOCKER=1