diff options
author | 2023-09-19 15:30:30 -0700 | |
---|---|---|
committer | 2023-09-26 16:32:43 -0700 | |
commit | 5f86413b2c6fe2a7dd678db2b5b4e22f336266d9 (patch) | |
tree | 0a641553f338178ed6004b0057aa70df9842ad5f | |
parent | 2a14d9e5c978a798af270dcbdcf96460b8e093ee (diff) | |
download | bun-5f86413b2c6fe2a7dd678db2b5b4e22f336266d9.tar.gz bun-5f86413b2c6fe2a7dd678db2b5b4e22f336266d9.tar.zst bun-5f86413b2c6fe2a7dd678db2b5b4e22f336266d9.zip |
Improve Docker images
-rw-r--r-- | dockerhub/Dockerfile-debian | 77 | ||||
-rw-r--r-- | dockerhub/debian-slim/Dockerfile | 10 | ||||
-rw-r--r-- | dockerhub/debian/Dockerfile | 10 | ||||
-rw-r--r-- | dockerhub/distroless/Dockerfile (renamed from dockerhub/Dockerfile-distroless) | 14 | ||||
-rwxr-xr-x | dockerhub/docker-entrypoint.sh | 8 |
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 "$@" |