diff --git a/docker/Makefile b/docker/Makefile index fda78b4..0e454a8 100644 --- a/docker/Makefile +++ b/docker/Makefile @@ -1,7 +1,7 @@ # Recipies for this Makefile ## Build all docker images -## $ make DOCKER_TAG=nightly CRYSTAL_VERSION=0.xy.z CRYSTAL_DEB=... CRYSTAL_TARGZ=... +## $ make DOCKER_TAG=nightly CRYSTAL_VERSION=0.xy.z CRYSTAL_TARGZ=... ## Build ubuntu64 docker images ## $ make ubuntu64 DOCKER_TAG=nightly CRYSTAL_VERSION=0.xy.z CRYSTAL_TARGZ=... ## Build alpine docker images diff --git a/docker/alpine-84codes.Dockerfile b/docker/alpine-84codes.Dockerfile index db45cfe..838ddd2 100644 --- a/docker/alpine-84codes.Dockerfile +++ b/docker/alpine-84codes.Dockerfile @@ -1,9 +1,11 @@ ARG crystal_version FROM 84codes/crystal:${crystal_version}-alpine AS build +ARG llvm_version=20 RUN \ apk add --update --no-cache --force-overwrite \ - llvm18-dev llvm18-static g++ libffi-dev + llvm${llvm_version}-dev llvm${llvm_version}-static \ + g++ libffi-dev ENTRYPOINT [] CMD ["/bin/sh"] diff --git a/docker/alpine.Dockerfile b/docker/alpine.Dockerfile index 5792bf3..a9d2adf 100644 --- a/docker/alpine.Dockerfile +++ b/docker/alpine.Dockerfile @@ -1,12 +1,13 @@ -ARG base_docker_image=alpine:3.20 +ARG base_docker_image=alpine:3.22 FROM ${base_docker_image} as runtime +ARG llvm_version=20 RUN \ apk add --update --no-cache --force-overwrite \ # core dependencies - gcc gmp-dev libevent-static musl-dev pcre-dev pcre2-dev \ + gcc gmp-dev libevent-static musl-dev pcre-dev pcre2-dev pcre2-static \ # stdlib dependencies - gc-dev libxml2-dev libxml2-static openssl-dev openssl-libs-static tzdata yaml-static zlib-static xz-static \ + gc-dev gc-static libxml2-dev libxml2-static openssl-dev openssl-libs-static tzdata yaml-static zlib-static xz-static \ # dev tools make git @@ -26,6 +27,7 @@ FROM runtime as build RUN \ apk add --update --no-cache --force-overwrite \ - llvm18-dev llvm18-static g++ libffi-dev + llvm${llvm_version}-dev llvm${llvm_version}-static \ + g++ libffi-dev CMD ["/bin/sh"] diff --git a/docker/ubuntu.Dockerfile b/docker/ubuntu.Dockerfile index caf81c9..f8b43be 100644 --- a/docker/ubuntu.Dockerfile +++ b/docker/ubuntu.Dockerfile @@ -1,5 +1,6 @@ ARG base_docker_image=ubuntu:24.04 FROM ${base_docker_image} as runtime +ARG llvm_version=20 RUN \ apt-get update && \ @@ -23,9 +24,9 @@ FROM runtime as build RUN \ apt-get update && \ - apt-get install -y build-essential llvm-18 lld-18 libedit-dev gdb libffi-dev && \ + apt-get install -y build-essential llvm-${llvm_version} lld-${llvm_version} libedit-dev gdb libffi-dev && \ apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* -RUN ln -sf /usr/bin/ld.lld-18 /usr/bin/ld.lld +RUN ln -sf /usr/bin/ld.lld-${llvm_version} /usr/bin/ld.lld CMD ["/bin/sh"] diff --git a/linux/Dockerfile b/linux/Dockerfile index b7928da..26d1101 100644 --- a/linux/Dockerfile +++ b/linux/Dockerfile @@ -17,14 +17,15 @@ RUN git clone https://github.com/ivmai/bdwgc \ && ./configure --disable-debug --disable-shared --enable-large-config \ && make -j$(nproc) -FROM alpine:3.20 +FROM alpine:3.22 +ARG llvm_version=20 # Install dependencies RUN apk add --no-cache \ # Statically-compiled llvm - llvm18-dev llvm18-static \ + llvm${llvm_version}-dev llvm${llvm_version}-static \ # Static stdlib dependencies - gc-dev zlib-static yaml-static libxml2-static pcre2-dev libevent-static zstd-static \ + gc-dev gc-static zlib-static yaml-static libxml2-static pcre2-dev pcre2-static libevent-static zstd-static \ # Static compiler dependencies libffi-dev \ # Build tools @@ -39,7 +40,7 @@ ENV CFLAGS="-fPIC -pipe ${release:+-O2}" # This particularly affects libgc which was bundled upto Crystal 1.12 ENV CRYSTAL_LIBRARY_PATH="" -RUN llvm18-config --version +RUN llvm${llvm_version}-config --version ARG previous_crystal_release ADD ${previous_crystal_release} /tmp/crystal.tar.gz diff --git a/linux/test.sh b/linux/test.sh index 951156f..0ba737d 100755 --- a/linux/test.sh +++ b/linux/test.sh @@ -2,7 +2,9 @@ @test "bundled tarball" { docker run -v $(pwd)/build:/build debian /bin/sh -e -c ' - apt update && apt install -y gcc + apt update && apt install -y gcc pkg-config tar -xf /build/crystal*-bundled.tar.gz + crystal-*/bin/crystal env + crystal-*/bin/crystal --version crystal-*/bin/crystal eval "puts \"Hello World\""' }