diff options
author | 2023-03-16 15:49:41 -0700 | |
---|---|---|
committer | 2023-03-16 15:49:41 -0700 | |
commit | 2dd99a37fdc9dad955e36a87ba52d1128e874a6c (patch) | |
tree | 6bfadda53dc0281d7b260215b20cc1792d881af3 /dockerhub | |
parent | baf8787fa423cc84526d9ca3e27a26009a36c0c4 (diff) | |
download | bun-2dd99a37fdc9dad955e36a87ba52d1128e874a6c.tar.gz bun-2dd99a37fdc9dad955e36a87ba52d1128e874a6c.tar.zst bun-2dd99a37fdc9dad955e36a87ba52d1128e874a6c.zip |
Organize Dockerfiles for official status
Diffstat (limited to 'dockerhub')
-rw-r--r-- | dockerhub/Dockerfile | 41 | ||||
-rw-r--r-- | dockerhub/Dockerfile-alpine | 29 | ||||
-rw-r--r-- | dockerhub/Dockerfile-debian | 22 | ||||
-rw-r--r-- | dockerhub/Dockerfile-distroless | 68 | ||||
-rw-r--r-- | dockerhub/debian-slim/Dockerfile | 77 | ||||
-rwxr-xr-x | dockerhub/debian-slim/docker-entrypoint.sh | 8 | ||||
-rw-r--r-- | dockerhub/debian/Dockerfile | 77 | ||||
-rwxr-xr-x | dockerhub/debian/docker-entrypoint.sh | 8 | ||||
-rwxr-xr-x | dockerhub/docker-entrypoint.sh | 8 |
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 "$@" |