From cafdcdc0f5d619e40780e479b2412625ee5fc072 Mon Sep 17 00:00:00 2001 From: mratox <143298194+mratox@users.noreply.github.com> Date: Sun, 27 Aug 2023 12:08:02 +0100 Subject: [PATCH] Added Bun Image (#179) * Add bun images --------- Co-authored-by: Quinten <67589015+QuintenQVD0@users.noreply.github.com> --- .github/workflows/bun.yml | 39 +++++++++++++++++++++++++++++++++++++++ README.md | 8 ++++++++ bun/canary/Dockerfile | 17 +++++++++++++++++ bun/entrypoint.sh | 16 ++++++++++++++++ bun/latest/Dockerfile | 17 +++++++++++++++++ 5 files changed, 97 insertions(+) create mode 100644 .github/workflows/bun.yml create mode 100644 bun/canary/Dockerfile create mode 100644 bun/entrypoint.sh create mode 100644 bun/latest/Dockerfile diff --git a/.github/workflows/bun.yml b/.github/workflows/bun.yml new file mode 100644 index 000000000..47926c9cc --- /dev/null +++ b/.github/workflows/bun.yml @@ -0,0 +1,39 @@ +name: build bun +on: + workflow_dispatch: + schedule: + - cron: "0 0 * * 1" + push: + branches: + - master + paths: + - bun/** +jobs: + push: + name: "yolks:bun_${{ matrix.tag }}" + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + tag: + - latest + - canary + steps: + - uses: actions/checkout@v3 + - uses: docker/setup-qemu-action@v2 + - uses: docker/setup-buildx-action@v2 + with: + buildkitd-flags: --debug + - uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.REGISTRY_TOKEN }} + - uses: docker/build-push-action@v4 + with: + context: ./bun + file: ./bun/${{ matrix.tag }}/Dockerfile + platforms: linux/amd64,linux/arm64 + push: true + tags: | + ghcr.io/parkervcp/yolks:bun_${{ matrix.tag }} diff --git a/README.md b/README.md index 1971c3f3a..201bd4a4f 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,13 @@ is tagged correctly. * [`Box64`](/box64) * `ghcr.io/parkervcp/yolks:box64` +### [Bun](/bun) + +* [`Bun Canary`](/bun/canary) + * `ghcr.io/parkervcp/yolks:bun_canary` +* [`Bun Latest`](/bun/latest) + * `ghcr.io/parkervcp/yolks:bun_latest` + ### [Cassandra](/cassandra) * [`cassandra_java8_python27`](/cassandra/cassandra_java8_python2) @@ -176,6 +183,7 @@ is tagged correctly. * [`node20`](/nodejs/20) * `ghcr.io/parkervcp/yolks:nodejs_20` + ### [PostgreSQL](/postgres) * [`Postgres 9`](/postgres/9) diff --git a/bun/canary/Dockerfile b/bun/canary/Dockerfile new file mode 100644 index 000000000..5078d5d91 --- /dev/null +++ b/bun/canary/Dockerfile @@ -0,0 +1,17 @@ +FROM --platform=$TARGETOS/$TARGETARCH oven/bun:canary + +LABEL author="MrAtox" maintainer="mratox@protonmail.com" + +RUN apt update \ + && apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip tar curl build-essential libtool \ + && useradd -m -d /home/container container + +RUN bun upgrade + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +ENTRYPOINT [] +COPY ./../entrypoint.sh /entrypoint.sh +CMD [ "/bin/bash", "/entrypoint.sh" ] diff --git a/bun/entrypoint.sh b/bun/entrypoint.sh new file mode 100644 index 000000000..c72ea71db --- /dev/null +++ b/bun/entrypoint.sh @@ -0,0 +1,16 @@ +#!/bin/bash +cd /home/container + +# Make internal Docker IP address available to processes. +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') +export INTERNAL_IP + +# Print Bun Version +bun -v + +# Replace Startup Variables +MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g') +echo -e ":/home/container$ ${MODIFIED_STARTUP}" + +# Run the Server +eval ${MODIFIED_STARTUP} diff --git a/bun/latest/Dockerfile b/bun/latest/Dockerfile new file mode 100644 index 000000000..57cd00e00 --- /dev/null +++ b/bun/latest/Dockerfile @@ -0,0 +1,17 @@ +FROM --platform=$TARGETOS/$TARGETARCH oven/bun:latest + +LABEL author="MrAtox" maintainer="mratox@protonmail.com" + +RUN apt update \ + && apt -y install ffmpeg iproute2 git sqlite3 libsqlite3-dev python3 python3-dev ca-certificates dnsutils tzdata zip tar curl build-essential libtool \ + && useradd -m -d /home/container container + +RUN bun upgrade + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +ENTRYPOINT [] +COPY ./../entrypoint.sh /entrypoint.sh +CMD [ "/bin/bash", "/entrypoint.sh" ]