Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docker/Makefile
Original file line number Diff line number Diff line change
@@ -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
Expand Down
4 changes: 3 additions & 1 deletion docker/alpine-84codes.Dockerfile
Original file line number Diff line number Diff line change
@@ -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"]
10 changes: 6 additions & 4 deletions docker/alpine.Dockerfile
Original file line number Diff line number Diff line change
@@ -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

Expand All @@ -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"]
5 changes: 3 additions & 2 deletions docker/ubuntu.Dockerfile
Original file line number Diff line number Diff line change
@@ -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 && \
Expand All @@ -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"]
9 changes: 5 additions & 4 deletions linux/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
4 changes: 3 additions & 1 deletion linux/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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\""'
}