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
78 changes: 78 additions & 0 deletions docker/0.24.0/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
FROM debian:trixie AS builder

ARG THRIFT_VERSION=0.24.0
ARG THRIFT_SOURCE_URL=https://archive.apache.org/dist/thrift/0.24.0/thrift-0.24.0.tar.gz
ARG THRIFT_SOURCE_SHA256=e0fa5839a4c5c1d631b0931cf2c554ebbfa4e2fee3a9fb3ffd4f82ce4396c6e4
ARG THRIFT_SOURCE_SIGNER=8CD87F186F06E958EFCA963D76BD340FC4B75865

RUN set -eux; \
apt-get update; \
apt-get install -y --no-install-recommends \
bison \
ca-certificates \
cmake \
curl \
flex \
g++ \
gnupg \
make \
; \
rm -rf /var/lib/apt/lists/*

WORKDIR /usr/src

RUN set -eux; \
curl -fsSL -o thrift.tar.gz "$THRIFT_SOURCE_URL"; \
curl -fsSL -o thrift.tar.gz.asc "$THRIFT_SOURCE_URL.asc"; \
curl -fsSL -o thrift-KEYS https://downloads.apache.org/thrift/KEYS; \
echo "$THRIFT_SOURCE_SHA256 *thrift.tar.gz" | sha256sum -c -; \
export GNUPGHOME="$(mktemp -d)"; \
gpg --batch --import thrift-KEYS; \
gpg --batch --status-fd 1 --verify thrift.tar.gz.asc thrift.tar.gz > gpg.status; \
grep -F "[GNUPG:] VALIDSIG $THRIFT_SOURCE_SIGNER " gpg.status; \
gpgconf --kill all; \
rm -rf "$GNUPGHOME"; \
mkdir thrift; \
tar -xzf thrift.tar.gz -C thrift --strip-components=1; \
rm thrift.tar.gz thrift.tar.gz.asc thrift-KEYS gpg.status

RUN set -eux; \
cmake -S thrift -B build \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_COMPILER=ON \
-DBUILD_LIBRARIES=OFF \
-DBUILD_TESTING=OFF \
-DBUILD_TUTORIALS=OFF; \
cmake --build build --target thrift-compiler -j "$(nproc)"; \
cmake --install build --prefix /opt/thrift

FROM debian:trixie-slim

ARG THRIFT_VERSION=0.24.0

LABEL org.opencontainers.image.title="Apache Thrift Compiler" \
org.opencontainers.image.version="$THRIFT_VERSION" \
org.opencontainers.image.source="https://github.com/apache/thrift" \
org.opencontainers.image.url="https://thrift.apache.org/" \
org.opencontainers.image.licenses="Apache-2.0"

RUN set -eux; \
apt-get update; \
apt-get install -y --no-install-recommends libstdc++6; \
rm -rf /var/lib/apt/lists/*

COPY --from=builder /opt/thrift/bin/thrift /usr/local/bin/thrift
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh

RUN set -eux; \
thrift --version | grep -F "$THRIFT_VERSION"; \
echo 'struct Ping { 1: string message }' > /tmp/smoke.thrift; \
mkdir -p /tmp/smoke-out; \
thrift --gen json -o /tmp/smoke-out /tmp/smoke.thrift; \
find /tmp/smoke-out -type f | grep -q .; \
rm -rf /tmp/smoke.thrift /tmp/smoke-out

WORKDIR /data

ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["thrift"]
74 changes: 74 additions & 0 deletions docker/0.24.0/Dockerfile.alpine
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
FROM alpine:3.23 AS builder

ARG THRIFT_VERSION=0.24.0
ARG THRIFT_SOURCE_URL=https://archive.apache.org/dist/thrift/0.24.0/thrift-0.24.0.tar.gz
ARG THRIFT_SOURCE_SHA256=e0fa5839a4c5c1d631b0931cf2c554ebbfa4e2fee3a9fb3ffd4f82ce4396c6e4
ARG THRIFT_SOURCE_SIGNER=8CD87F186F06E958EFCA963D76BD340FC4B75865

RUN set -eux; \
apk add --no-cache \
bison \
build-base \
ca-certificates \
cmake \
curl \
flex \
gnupg \
; \
update-ca-certificates

WORKDIR /usr/src

RUN set -eux; \
curl -fsSL -o thrift.tar.gz "$THRIFT_SOURCE_URL"; \
curl -fsSL -o thrift.tar.gz.asc "$THRIFT_SOURCE_URL.asc"; \
curl -fsSL -o thrift-KEYS https://downloads.apache.org/thrift/KEYS; \
echo "$THRIFT_SOURCE_SHA256 *thrift.tar.gz" | sha256sum -c -; \
export GNUPGHOME="$(mktemp -d)"; \
gpg --batch --import thrift-KEYS; \
gpg --batch --status-fd 1 --verify thrift.tar.gz.asc thrift.tar.gz > gpg.status; \
grep -F "[GNUPG:] VALIDSIG $THRIFT_SOURCE_SIGNER " gpg.status; \
gpgconf --kill all; \
rm -rf "$GNUPGHOME"; \
mkdir thrift; \
tar -xzf thrift.tar.gz -C thrift --strip-components=1; \
rm thrift.tar.gz thrift.tar.gz.asc thrift-KEYS gpg.status

RUN set -eux; \
cmake -S thrift -B build \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_COMPILER=ON \
-DBUILD_LIBRARIES=OFF \
-DBUILD_TESTING=OFF \
-DBUILD_TUTORIALS=OFF; \
cmake --build build --target thrift-compiler -j "$(nproc)"; \
cmake --install build --prefix /opt/thrift

FROM alpine:3.23

ARG THRIFT_VERSION=0.24.0

LABEL org.opencontainers.image.title="Apache Thrift Compiler" \
org.opencontainers.image.version="$THRIFT_VERSION" \
org.opencontainers.image.source="https://github.com/apache/thrift" \
org.opencontainers.image.url="https://thrift.apache.org/" \
org.opencontainers.image.licenses="Apache-2.0"

RUN set -eux; \
apk add --no-cache libstdc++

COPY --from=builder /opt/thrift/bin/thrift /usr/local/bin/thrift
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh

RUN set -eux; \
thrift --version | grep -F "$THRIFT_VERSION"; \
echo 'struct Ping { 1: string message }' > /tmp/smoke.thrift; \
mkdir -p /tmp/smoke-out; \
thrift --gen json -o /tmp/smoke-out /tmp/smoke.thrift; \
find /tmp/smoke-out -type f | grep -q .; \
rm -rf /tmp/smoke.thrift /tmp/smoke-out

WORKDIR /data

ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["thrift"]
10 changes: 10 additions & 0 deletions docker/0.24.0/docker-entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/sh
set -e

if [ "$#" -eq 0 ]; then
set -- thrift
elif [ "${1#-}" != "$1" ]; then
set -- thrift "$@"
fi

exec "$@"
78 changes: 78 additions & 0 deletions docker/0.25.0/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
FROM debian:trixie AS builder

ARG THRIFT_VERSION=0.25.0
ARG THRIFT_SOURCE_URL=https://archive.apache.org/dist/thrift/0.25.0/thrift-0.25.0.tar.gz
ARG THRIFT_SOURCE_SHA256=66da4707214c54c94bac082103dc67adaf9e08925662700f269170a7b534b214
ARG THRIFT_SOURCE_SIGNER=8CD87F186F06E958EFCA963D76BD340FC4B75865

RUN set -eux; \
apt-get update; \
apt-get install -y --no-install-recommends \
bison \
ca-certificates \
cmake \
curl \
flex \
g++ \
gnupg \
make \
; \
rm -rf /var/lib/apt/lists/*

WORKDIR /usr/src

RUN set -eux; \
curl -fsSL -o thrift.tar.gz "$THRIFT_SOURCE_URL"; \
curl -fsSL -o thrift.tar.gz.asc "$THRIFT_SOURCE_URL.asc"; \
curl -fsSL -o thrift-KEYS https://downloads.apache.org/thrift/KEYS; \
echo "$THRIFT_SOURCE_SHA256 *thrift.tar.gz" | sha256sum -c -; \
export GNUPGHOME="$(mktemp -d)"; \
gpg --batch --import thrift-KEYS; \
gpg --batch --status-fd 1 --verify thrift.tar.gz.asc thrift.tar.gz > gpg.status; \
grep -F "[GNUPG:] VALIDSIG $THRIFT_SOURCE_SIGNER " gpg.status; \
gpgconf --kill all; \
rm -rf "$GNUPGHOME"; \
mkdir thrift; \
tar -xzf thrift.tar.gz -C thrift --strip-components=1; \
rm thrift.tar.gz thrift.tar.gz.asc thrift-KEYS gpg.status

RUN set -eux; \
cmake -S thrift -B build \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_COMPILER=ON \
-DBUILD_LIBRARIES=OFF \
-DBUILD_TESTING=OFF \
-DBUILD_TUTORIALS=OFF; \
cmake --build build --target thrift-compiler -j "$(nproc)"; \
cmake --install build --prefix /opt/thrift

FROM debian:trixie-slim

ARG THRIFT_VERSION=0.25.0

LABEL org.opencontainers.image.title="Apache Thrift Compiler" \
org.opencontainers.image.version="$THRIFT_VERSION" \
org.opencontainers.image.source="https://github.com/apache/thrift" \
org.opencontainers.image.url="https://thrift.apache.org/" \
org.opencontainers.image.licenses="Apache-2.0"

RUN set -eux; \
apt-get update; \
apt-get install -y --no-install-recommends libstdc++6; \
rm -rf /var/lib/apt/lists/*

COPY --from=builder /opt/thrift/bin/thrift /usr/local/bin/thrift
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh

RUN set -eux; \
thrift --version | grep -F "$THRIFT_VERSION"; \
echo 'struct Ping { 1: string message }' > /tmp/smoke.thrift; \
mkdir -p /tmp/smoke-out; \
thrift --gen json -o /tmp/smoke-out /tmp/smoke.thrift; \
find /tmp/smoke-out -type f | grep -q .; \
rm -rf /tmp/smoke.thrift /tmp/smoke-out

WORKDIR /data

ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["thrift"]
74 changes: 74 additions & 0 deletions docker/0.25.0/Dockerfile.alpine
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
FROM alpine:3.23 AS builder

ARG THRIFT_VERSION=0.25.0
ARG THRIFT_SOURCE_URL=https://archive.apache.org/dist/thrift/0.25.0/thrift-0.25.0.tar.gz
ARG THRIFT_SOURCE_SHA256=66da4707214c54c94bac082103dc67adaf9e08925662700f269170a7b534b214
ARG THRIFT_SOURCE_SIGNER=8CD87F186F06E958EFCA963D76BD340FC4B75865

RUN set -eux; \
apk add --no-cache \
bison \
build-base \
ca-certificates \
cmake \
curl \
flex \
gnupg \
; \
update-ca-certificates

WORKDIR /usr/src

RUN set -eux; \
curl -fsSL -o thrift.tar.gz "$THRIFT_SOURCE_URL"; \
curl -fsSL -o thrift.tar.gz.asc "$THRIFT_SOURCE_URL.asc"; \
curl -fsSL -o thrift-KEYS https://downloads.apache.org/thrift/KEYS; \
echo "$THRIFT_SOURCE_SHA256 *thrift.tar.gz" | sha256sum -c -; \
export GNUPGHOME="$(mktemp -d)"; \
gpg --batch --import thrift-KEYS; \
gpg --batch --status-fd 1 --verify thrift.tar.gz.asc thrift.tar.gz > gpg.status; \
grep -F "[GNUPG:] VALIDSIG $THRIFT_SOURCE_SIGNER " gpg.status; \
gpgconf --kill all; \
rm -rf "$GNUPGHOME"; \
mkdir thrift; \
tar -xzf thrift.tar.gz -C thrift --strip-components=1; \
rm thrift.tar.gz thrift.tar.gz.asc thrift-KEYS gpg.status

RUN set -eux; \
cmake -S thrift -B build \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_COMPILER=ON \
-DBUILD_LIBRARIES=OFF \
-DBUILD_TESTING=OFF \
-DBUILD_TUTORIALS=OFF; \
cmake --build build --target thrift-compiler -j "$(nproc)"; \
cmake --install build --prefix /opt/thrift

FROM alpine:3.23

ARG THRIFT_VERSION=0.25.0

LABEL org.opencontainers.image.title="Apache Thrift Compiler" \
org.opencontainers.image.version="$THRIFT_VERSION" \
org.opencontainers.image.source="https://github.com/apache/thrift" \
org.opencontainers.image.url="https://thrift.apache.org/" \
org.opencontainers.image.licenses="Apache-2.0"

RUN set -eux; \
apk add --no-cache libstdc++

COPY --from=builder /opt/thrift/bin/thrift /usr/local/bin/thrift
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh

RUN set -eux; \
thrift --version | grep -F "$THRIFT_VERSION"; \
echo 'struct Ping { 1: string message }' > /tmp/smoke.thrift; \
mkdir -p /tmp/smoke-out; \
thrift --gen json -o /tmp/smoke-out /tmp/smoke.thrift; \
find /tmp/smoke-out -type f | grep -q .; \
rm -rf /tmp/smoke.thrift /tmp/smoke-out

WORKDIR /data

ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["thrift"]
10 changes: 10 additions & 0 deletions docker/0.25.0/docker-entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/sh
set -e

if [ "$#" -eq 0 ]; then
set -- thrift
elif [ "${1#-}" != "$1" ]; then
set -- thrift "$@"
fi

exec "$@"
16 changes: 16 additions & 0 deletions docker/versions.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,22 @@
"released": "2026-04-27",
"debian": "trixie",
"alpine": "3.23"
},
"0.24.0": {
"source": "https://archive.apache.org/dist/thrift/0.24.0/thrift-0.24.0.tar.gz",
"sha256": "e0fa5839a4c5c1d631b0931cf2c554ebbfa4e2fee3a9fb3ffd4f82ce4396c6e4",
"signer": "8CD87F186F06E958EFCA963D76BD340FC4B75865",
"released": "2026-07-11",
"debian": "trixie",
"alpine": "3.23"
},
"0.25.0": {
"source": "https://archive.apache.org/dist/thrift/0.25.0/thrift-0.25.0.tar.gz",
"sha256": "66da4707214c54c94bac082103dc67adaf9e08925662700f269170a7b534b214",
"signer": "8CD87F186F06E958EFCA963D76BD340FC4B75865",
"released": "2026-09-30",
"debian": "trixie",
"alpine": "3.23"
}
}
}
Loading