aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Ashcon Partovi <ashcon@partovi.net> 2023-09-19 15:30:30 -0700
committerGravatar Ashcon Partovi <ashcon@partovi.net> 2023-09-26 16:32:43 -0700
commit5f86413b2c6fe2a7dd678db2b5b4e22f336266d9 (patch)
tree0a641553f338178ed6004b0057aa70df9842ad5f
parent2a14d9e5c978a798af270dcbdcf96460b8e093ee (diff)
downloadbun-5f86413b2c6fe2a7dd678db2b5b4e22f336266d9.tar.gz
bun-5f86413b2c6fe2a7dd678db2b5b4e22f336266d9.tar.zst
bun-5f86413b2c6fe2a7dd678db2b5b4e22f336266d9.zip
Improve Docker images
-rw-r--r--dockerhub/Dockerfile-debian77
-rw-r--r--dockerhub/debian-slim/Dockerfile10
-rw-r--r--dockerhub/debian/Dockerfile10
-rw-r--r--dockerhub/distroless/Dockerfile (renamed from dockerhub/Dockerfile-distroless)14
-rwxr-xr-xdockerhub/docker-entrypoint.sh8
5 files changed, 12 insertions, 107 deletions
diff --git a/dockerhub/Dockerfile-debian b/dockerhub/Dockerfile-debian
deleted file mode 100644
index eaca05403..000000000
--- a/dockerhub/Dockerfile-debian
+++ /dev/null
@@ -1,77 +0,0 @@
-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 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/Dockerfile b/dockerhub/debian-slim/Dockerfile
index 954c48d2f..39353bdbc 100644
--- a/dockerhub/debian-slim/Dockerfile
+++ b/dockerhub/debian-slim/Dockerfile
@@ -1,7 +1,7 @@
FROM debian:bullseye-slim AS build
# https://github.com/oven-sh/bun/releases
-ARG BUN_VERSION=0.5.7
+ARG BUN_VERSION=latest
RUN apt-get update -qq \
&& apt-get install -qq --no-install-recommends \
@@ -40,7 +40,6 @@ RUN apt-get update -qq \
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 \
@@ -53,9 +52,7 @@ RUN apt-get update -qq \
&& 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
@@ -69,9 +66,8 @@ RUN groupadd bun \
--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
+COPY --from=build /usr/local/bin/bun /usr/local/bin/bun
+RUN ln -s /usr/local/bin/bun /usr/local/bin/bunx
-WORKDIR /home/bun/app
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
CMD ["/usr/local/bin/bun"]
diff --git a/dockerhub/debian/Dockerfile b/dockerhub/debian/Dockerfile
index a16befb6f..3514edbca 100644
--- a/dockerhub/debian/Dockerfile
+++ b/dockerhub/debian/Dockerfile
@@ -1,7 +1,7 @@
FROM debian:bullseye-slim AS build
# https://github.com/oven-sh/bun/releases
-ARG BUN_VERSION=0.5.7
+ARG BUN_VERSION=latest
RUN apt-get update -qq \
&& apt-get install -qq --no-install-recommends \
@@ -40,7 +40,6 @@ RUN apt-get update -qq \
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 \
@@ -53,9 +52,7 @@ RUN apt-get update -qq \
&& 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
@@ -69,9 +66,8 @@ RUN groupadd bun \
--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
+COPY --from=build /usr/local/bin/bun /usr/local/bin/bun
+RUN ln -s /usr/local/bin/bun /usr/local/bin/bunx
-WORKDIR /home/bun/app
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
CMD ["/usr/local/bin/bun"]
diff --git a/dockerhub/Dockerfile-distroless b/dockerhub/distroless/Dockerfile
index ab079d194..7c1941ad2 100644
--- a/dockerhub/Dockerfile-distroless
+++ b/dockerhub/distroless/Dockerfile
@@ -1,5 +1,4 @@
FROM debian:bullseye-slim AS build
-# Not officially supported (yet)
# https://github.com/oven-sh/bun/releases
ARG BUN_VERSION=latest
@@ -41,7 +40,6 @@ RUN apt-get update -qq \
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 \
@@ -54,16 +52,16 @@ RUN apt-get update -qq \
&& 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
+COPY --from=build /usr/local/bin/bun /usr/local/bin/
+
+# Known issue: `bunx` is not available in distroless.
+#
+# If `ln -s` is used in the build image, the size of the final
+# image will be double, because of: https://github.com/oven-sh/bun/issues/5269
-WORKDIR /app
ENTRYPOINT ["/usr/local/bin/bun"]
-CMD ["/usr/local/bin/bun"]
diff --git a/dockerhub/docker-entrypoint.sh b/dockerhub/docker-entrypoint.sh
deleted file mode 100755
index a0e45cbb5..000000000
--- a/dockerhub/docker-entrypoint.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-set -e
-
-if [ "${1#-}" != "${1}" ] || [ -z "$(command -v "${1}")" ] || { [ -f "${1}" ] && ! [ -x "${1}" ]; }; then
- set -- /usr/local/bin/bun "$@"
-fi
-
-exec "$@"