aboutsummaryrefslogtreecommitdiff
path: root/dockerhub
diff options
context:
space:
mode:
authorGravatar Ashcon Partovi <ashcon@partovi.net> 2023-03-16 15:49:41 -0700
committerGravatar Ashcon Partovi <ashcon@partovi.net> 2023-03-16 15:49:41 -0700
commit2dd99a37fdc9dad955e36a87ba52d1128e874a6c (patch)
tree6bfadda53dc0281d7b260215b20cc1792d881af3 /dockerhub
parentbaf8787fa423cc84526d9ca3e27a26009a36c0c4 (diff)
downloadbun-2dd99a37fdc9dad955e36a87ba52d1128e874a6c.tar.gz
bun-2dd99a37fdc9dad955e36a87ba52d1128e874a6c.tar.zst
bun-2dd99a37fdc9dad955e36a87ba52d1128e874a6c.zip
Organize Dockerfiles for official status
Diffstat (limited to 'dockerhub')
-rw-r--r--dockerhub/Dockerfile41
-rw-r--r--dockerhub/Dockerfile-alpine29
-rw-r--r--dockerhub/Dockerfile-debian22
-rw-r--r--dockerhub/Dockerfile-distroless68
-rw-r--r--dockerhub/debian-slim/Dockerfile77
-rwxr-xr-xdockerhub/debian-slim/docker-entrypoint.sh8
-rw-r--r--dockerhub/debian/Dockerfile77
-rwxr-xr-xdockerhub/debian/docker-entrypoint.sh8
-rwxr-xr-xdockerhub/docker-entrypoint.sh8
9 files changed, 283 insertions, 55 deletions
diff --git a/dockerhub/Dockerfile b/dockerhub/Dockerfile
deleted file mode 100644
index 984db49bc..000000000
--- a/dockerhub/Dockerfile
+++ /dev/null
@@ -1,41 +0,0 @@
-### GLOBALS ###
-ARG GLIBC_RELEASE=2.34-r0
-
-
-### GET ###
-FROM alpine:latest as get
-
-# prepare environment
-WORKDIR /tmp
-RUN apk --no-cache add unzip
-
-# get bun
-ADD https://github.com/oven-sh/bun/releases/latest/download/bun-linux-x64.zip bun-linux-x64.zip
-RUN unzip bun-linux-x64.zip
-
-# get glibc
-ARG GLIBC_RELEASE
-RUN wget https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub && \
- wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_RELEASE}/glibc-${GLIBC_RELEASE}.apk
-
-
-### IMAGE ###
-FROM alpine:latest
-
-# install bun
-COPY --from=get /tmp/bun-linux-x64/bun /usr/local/bin
-
-# prepare glibc
-ARG GLIBC_RELEASE
-COPY --from=get /tmp/sgerrand.rsa.pub /etc/apk/keys
-COPY --from=get /tmp/glibc-${GLIBC_RELEASE}.apk /tmp
-
-# install glibc
-RUN apk --no-cache --force-overwrite add /tmp/glibc-${GLIBC_RELEASE}.apk && \
-
-# cleanup
- rm /etc/apk/keys/sgerrand.rsa.pub && \
- rm /tmp/glibc-${GLIBC_RELEASE}.apk && \
-
-# smoke test
- bun --version
diff --git a/dockerhub/Dockerfile-alpine b/dockerhub/Dockerfile-alpine
new file mode 100644
index 000000000..5530f438f
--- /dev/null
+++ b/dockerhub/Dockerfile-alpine
@@ -0,0 +1,29 @@
+# bun:alpine
+# Not officially supported (yet)
+
+ARG GLIBC_RELEASE=2.35-r0
+
+FROM alpine:latest AS build
+
+WORKDIR /tmp
+RUN apk --no-cache add unzip
+
+ARG GLIBC_RELEASE
+RUN wget https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub && \
+wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_RELEASE}/glibc-${GLIBC_RELEASE}.apk
+
+ADD https://github.com/oven-sh/bun/releases/latest/download/bun-linux-x64.zip bun-linux-x64.zip
+RUN unzip bun-linux-x64.zip
+
+FROM alpine:latest
+
+ARG GLIBC_RELEASE
+COPY --from=build /tmp/sgerrand.rsa.pub /etc/apk/keys
+COPY --from=build /tmp/glibc-${GLIBC_RELEASE}.apk /tmp
+COPY --from=build /tmp/bun-linux-x64/bun /usr/local/bin
+
+RUN apk --no-cache --force-overwrite add /tmp/glibc-${GLIBC_RELEASE}.apk \
+&& rm /etc/apk/keys/sgerrand.rsa.pub \
+&& rm /tmp/glibc-${GLIBC_RELEASE}.apk
+
+RUN bun --version
diff --git a/dockerhub/Dockerfile-debian b/dockerhub/Dockerfile-debian
index 483d05767..eaca05403 100644
--- a/dockerhub/Dockerfile-debian
+++ b/dockerhub/Dockerfile-debian
@@ -1,8 +1,4 @@
-# https://hub.docker.com/_/debian
-# https://hub.docker.com/_/ubuntu
-ARG IMAGE=debian:bullseye-slim
-
-FROM $IMAGE AS base
+FROM debian:bullseye-slim AS build
# https://github.com/oven-sh/bun/releases
ARG BUN_VERSION=latest
@@ -25,7 +21,7 @@ RUN apt-get update -qq \
esac \
&& version="$BUN_VERSION" \
&& case "$version" in \
- latest | canary | bun-v*) tag="$version"; ;; \
+ latest | canary | bun-v*) tag="$version"; ;; \
v*) tag="bun-$version"; ;; \
*) tag="bun-v$version"; ;; \
esac \
@@ -62,7 +58,7 @@ RUN apt-get update -qq \
&& which bunx \
&& bun --version
-FROM $IMAGE
+FROM debian:bullseye-slim
RUN groupadd bun \
--gid 1000 \
@@ -72,12 +68,10 @@ RUN groupadd bun \
--shell /bin/sh \
--create-home
-COPY --from=base /usr/local/bin/bun /usr/local/bin
-COPY --from=base /usr/local/bin/bunx /usr/local/bin
-
-RUN which bun \
- && which bunx \
- && bun --version
+COPY docker-entrypoint.sh /usr/local/bin
+COPY --from=build /usr/local/bin/bun /usr/local/bin
+COPY --from=build /usr/local/bin/bunx /usr/local/bin
WORKDIR /home/bun/app
-CMD ["bun"]
+ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
+CMD ["/usr/local/bin/bun"]
diff --git a/dockerhub/Dockerfile-distroless b/dockerhub/Dockerfile-distroless
new file mode 100644
index 000000000..11603609c
--- /dev/null
+++ b/dockerhub/Dockerfile-distroless
@@ -0,0 +1,68 @@
+FROM debian:bullseye-slim AS build
+
+# https://github.com/oven-sh/bun/releases
+ARG BUN_VERSION=latest
+
+RUN apt-get update -qq \
+ && apt-get install -qq --no-install-recommends \
+ ca-certificates \
+ curl \
+ dirmngr \
+ gpg \
+ gpg-agent \
+ unzip \
+ && apt-get clean \
+ && rm -rf /var/lib/apt/lists/* \
+ && arch="$(dpkg --print-architecture)" \
+ && case "${arch##*-}" in \
+ amd64) build="x64-baseline";; \
+ arm64) build="aarch64";; \
+ *) echo "error: unsupported architecture: ($arch)"; exit 1 ;; \
+ esac \
+ && version="$BUN_VERSION" \
+ && case "$version" in \
+ latest | canary | bun-v*) tag="$version"; ;; \
+ v*) tag="bun-$version"; ;; \
+ *) tag="bun-v$version"; ;; \
+ esac \
+ && case "$tag" in \
+ latest) release="latest/download"; ;; \
+ *) release="download/$tag"; ;; \
+ esac \
+ && curl "https://github.com/oven-sh/bun/releases/$release/bun-linux-$build.zip" \
+ -fsSLO \
+ --compressed \
+ --retry 5 \
+ || (echo "error: unknown release: ($tag)" && exit 1) \
+ && for key in \
+ "F3DCC08A8572C0749B3E18888EAB4D40A7B22B59" \
+ ; do \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" \
+ || gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" ; \
+ done \
+ && gpg --update-trustdb \
+ && curl "https://github.com/oven-sh/bun/releases/$release/SHASUMS256.txt.asc" \
+ -fsSLO \
+ --compressed \
+ --retry 5 \
+ && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
+ || (echo "error: failed to verify release: ($tag)" && exit 1) \
+ && grep " bun-linux-$build.zip\$" SHASUMS256.txt | sha256sum -c - \
+ || (echo "error: failed to verify release: ($tag)" && exit 1) \
+ && unzip "bun-linux-$build.zip" \
+ && mv "bun-linux-$build/bun" /usr/local/bin/bun \
+ && rm -f "bun-linux-$build.zip" SHASUMS256.txt.asc SHASUMS256.txt \
+ && chmod +x /usr/local/bin/bun \
+ && ln -s /usr/local/bin/bun /usr/local/bin/bunx \
+ && which bun \
+ && which bunx \
+ && bun --version
+
+FROM gcr.io/distroless/base-nossl-debian11
+
+COPY --from=build /usr/local/bin/bun /usr/local/bin
+COPY --from=build /usr/local/bin/bunx /usr/local/bin
+
+WORKDIR /app
+ENTRYPOINT ["/usr/local/bin/bun"]
+CMD ["/usr/local/bin/bun"]
diff --git a/dockerhub/debian-slim/Dockerfile b/dockerhub/debian-slim/Dockerfile
new file mode 100644
index 000000000..954c48d2f
--- /dev/null
+++ b/dockerhub/debian-slim/Dockerfile
@@ -0,0 +1,77 @@
+FROM debian:bullseye-slim AS build
+
+# https://github.com/oven-sh/bun/releases
+ARG BUN_VERSION=0.5.7
+
+RUN apt-get update -qq \
+ && apt-get install -qq --no-install-recommends \
+ ca-certificates \
+ curl \
+ dirmngr \
+ gpg \
+ gpg-agent \
+ unzip \
+ && apt-get clean \
+ && rm -rf /var/lib/apt/lists/* \
+ && arch="$(dpkg --print-architecture)" \
+ && case "${arch##*-}" in \
+ amd64) build="x64-baseline";; \
+ arm64) build="aarch64";; \
+ *) echo "error: unsupported architecture: ($arch)"; exit 1 ;; \
+ esac \
+ && version="$BUN_VERSION" \
+ && case "$version" in \
+ latest | canary | bun-v*) tag="$version"; ;; \
+ v*) tag="bun-$version"; ;; \
+ *) tag="bun-v$version"; ;; \
+ esac \
+ && case "$tag" in \
+ latest) release="latest/download"; ;; \
+ *) release="download/$tag"; ;; \
+ esac \
+ && curl "https://github.com/oven-sh/bun/releases/$release/bun-linux-$build.zip" \
+ -fsSLO \
+ --compressed \
+ --retry 5 \
+ || (echo "error: unknown release: ($tag)" && exit 1) \
+ && for key in \
+ "F3DCC08A8572C0749B3E18888EAB4D40A7B22B59" \
+ ; do \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" \
+ || gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" ; \
+ done \
+ && gpg --update-trustdb \
+ && curl "https://github.com/oven-sh/bun/releases/$release/SHASUMS256.txt.asc" \
+ -fsSLO \
+ --compressed \
+ --retry 5 \
+ && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
+ || (echo "error: failed to verify release: ($tag)" && exit 1) \
+ && grep " bun-linux-$build.zip\$" SHASUMS256.txt | sha256sum -c - \
+ || (echo "error: failed to verify release: ($tag)" && exit 1) \
+ && unzip "bun-linux-$build.zip" \
+ && mv "bun-linux-$build/bun" /usr/local/bin/bun \
+ && rm -f "bun-linux-$build.zip" SHASUMS256.txt.asc SHASUMS256.txt \
+ && chmod +x /usr/local/bin/bun \
+ && ln -s /usr/local/bin/bun /usr/local/bin/bunx \
+ && which bun \
+ && which bunx \
+ && bun --version
+
+FROM debian:bullseye-slim
+
+RUN groupadd bun \
+ --gid 1000 \
+ && useradd bun \
+ --uid 1000 \
+ --gid bun \
+ --shell /bin/sh \
+ --create-home
+
+COPY docker-entrypoint.sh /usr/local/bin
+COPY --from=build /usr/local/bin/bun /usr/local/bin
+COPY --from=build /usr/local/bin/bunx /usr/local/bin
+
+WORKDIR /home/bun/app
+ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
+CMD ["/usr/local/bin/bun"]
diff --git a/dockerhub/debian-slim/docker-entrypoint.sh b/dockerhub/debian-slim/docker-entrypoint.sh
new file mode 100755
index 000000000..a0e45cbb5
--- /dev/null
+++ b/dockerhub/debian-slim/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+set -e
+
+if [ "${1#-}" != "${1}" ] || [ -z "$(command -v "${1}")" ] || { [ -f "${1}" ] && ! [ -x "${1}" ]; }; then
+ set -- /usr/local/bin/bun "$@"
+fi
+
+exec "$@"
diff --git a/dockerhub/debian/Dockerfile b/dockerhub/debian/Dockerfile
new file mode 100644
index 000000000..a16befb6f
--- /dev/null
+++ b/dockerhub/debian/Dockerfile
@@ -0,0 +1,77 @@
+FROM debian:bullseye-slim AS build
+
+# https://github.com/oven-sh/bun/releases
+ARG BUN_VERSION=0.5.7
+
+RUN apt-get update -qq \
+ && apt-get install -qq --no-install-recommends \
+ ca-certificates \
+ curl \
+ dirmngr \
+ gpg \
+ gpg-agent \
+ unzip \
+ && apt-get clean \
+ && rm -rf /var/lib/apt/lists/* \
+ && arch="$(dpkg --print-architecture)" \
+ && case "${arch##*-}" in \
+ amd64) build="x64-baseline";; \
+ arm64) build="aarch64";; \
+ *) echo "error: unsupported architecture: ($arch)"; exit 1 ;; \
+ esac \
+ && version="$BUN_VERSION" \
+ && case "$version" in \
+ latest | canary | bun-v*) tag="$version"; ;; \
+ v*) tag="bun-$version"; ;; \
+ *) tag="bun-v$version"; ;; \
+ esac \
+ && case "$tag" in \
+ latest) release="latest/download"; ;; \
+ *) release="download/$tag"; ;; \
+ esac \
+ && curl "https://github.com/oven-sh/bun/releases/$release/bun-linux-$build.zip" \
+ -fsSLO \
+ --compressed \
+ --retry 5 \
+ || (echo "error: unknown release: ($tag)" && exit 1) \
+ && for key in \
+ "F3DCC08A8572C0749B3E18888EAB4D40A7B22B59" \
+ ; do \
+ gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" \
+ || gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" ; \
+ done \
+ && gpg --update-trustdb \
+ && curl "https://github.com/oven-sh/bun/releases/$release/SHASUMS256.txt.asc" \
+ -fsSLO \
+ --compressed \
+ --retry 5 \
+ && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc \
+ || (echo "error: failed to verify release: ($tag)" && exit 1) \
+ && grep " bun-linux-$build.zip\$" SHASUMS256.txt | sha256sum -c - \
+ || (echo "error: failed to verify release: ($tag)" && exit 1) \
+ && unzip "bun-linux-$build.zip" \
+ && mv "bun-linux-$build/bun" /usr/local/bin/bun \
+ && rm -f "bun-linux-$build.zip" SHASUMS256.txt.asc SHASUMS256.txt \
+ && chmod +x /usr/local/bin/bun \
+ && ln -s /usr/local/bin/bun /usr/local/bin/bunx \
+ && which bun \
+ && which bunx \
+ && bun --version
+
+FROM debian:bullseye
+
+RUN groupadd bun \
+ --gid 1000 \
+ && useradd bun \
+ --uid 1000 \
+ --gid bun \
+ --shell /bin/sh \
+ --create-home
+
+COPY docker-entrypoint.sh /usr/local/bin
+COPY --from=build /usr/local/bin/bun /usr/local/bin
+COPY --from=build /usr/local/bin/bunx /usr/local/bin
+
+WORKDIR /home/bun/app
+ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
+CMD ["/usr/local/bin/bun"]
diff --git a/dockerhub/debian/docker-entrypoint.sh b/dockerhub/debian/docker-entrypoint.sh
new file mode 100755
index 000000000..a0e45cbb5
--- /dev/null
+++ b/dockerhub/debian/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+set -e
+
+if [ "${1#-}" != "${1}" ] || [ -z "$(command -v "${1}")" ] || { [ -f "${1}" ] && ! [ -x "${1}" ]; }; then
+ set -- /usr/local/bin/bun "$@"
+fi
+
+exec "$@"
diff --git a/dockerhub/docker-entrypoint.sh b/dockerhub/docker-entrypoint.sh
new file mode 100755
index 000000000..a0e45cbb5
--- /dev/null
+++ b/dockerhub/docker-entrypoint.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+set -e
+
+if [ "${1#-}" != "${1}" ] || [ -z "$(command -v "${1}")" ] || { [ -f "${1}" ] && ! [ -x "${1}" ]; }; then
+ set -- /usr/local/bin/bun "$@"
+fi
+
+exec "$@"