From b50c2d57dee77af5ccc208a44dd8b02122d6a50b Mon Sep 17 00:00:00 2001 From: devnote-dev Date: Sun, 9 Oct 2022 20:17:52 +0100 Subject: [PATCH] feat: add dart-lang image --- .github/workflows/dart.yml | 40 ++++++++++++++++++++++++++++++++++++++ README.md | 5 +++++ dart/2.17/Dockerfile | 14 +++++++++++++ dart/entrypoint.sh | 16 +++++++++++++++ 4 files changed, 75 insertions(+) create mode 100644 .github/workflows/dart.yml create mode 100644 dart/2.17/Dockerfile create mode 100644 dart/entrypoint.sh diff --git a/.github/workflows/dart.yml b/.github/workflows/dart.yml new file mode 100644 index 0000000..2b2d8e0 --- /dev/null +++ b/.github/workflows/dart.yml @@ -0,0 +1,40 @@ +name: build dart +on: + workflow_dispatch: + schedule: + - cron: "0 0 * * 1" + push: + branches: + - master + paths: + - dart/** +jobs: + push: + name: "yolks:dart_${{ matrix.tag }}" + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + tag: + - 2.17 + steps: + - uses: actions/checkout@v3 + # Setup QEMU for ARM64 Build + - uses: docker/setup-qemu-action@v2 + - uses: docker/setup-buildx-action@v2 + with: + version: "v0.8.2" + 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@v3 + with: + context: ./dart + file: ./dart/${{ matrix.tag }}/Dockerfile + platforms: linux/amd64,linux/arm64 + push: true + tags: | + ghcr.io/parkervcp/yolks:dart_${{ matrix.tag }} diff --git a/README.md b/README.md index c1f6e7e..865aad2 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,11 @@ is tagged correctly. * [`dotnet6.0`](/dotnet/6) * `ghcr.io/parkervcp/yolks:dotnet_6` +### [Dart](/dart) + +* [`dart2.17`](/dart/2.17) + * `ghcr.io/parkervcp/yolks:dart_2.17` + ### [Erlang](/erlang) * [`erlang22`](/erlang/22) diff --git a/dart/2.17/Dockerfile b/dart/2.17/Dockerfile new file mode 100644 index 0000000..0bdbbe8 --- /dev/null +++ b/dart/2.17/Dockerfile @@ -0,0 +1,14 @@ +FROM --platform=$TARGETOS/$TARGETARCH dart:2.17 + +LABEL author="Alden Bansemer" maintainer="alden@knoban.com" + +RUN apt update \ + && apt -y install iproute2 git ca-certificates tzdata \ + && useradd -m -d /home/container container + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY ./../entrypoint.sh /entrypoint.sh +CMD [ "/bin/bash", "/entrypoint.sh" ] diff --git a/dart/entrypoint.sh b/dart/entrypoint.sh new file mode 100644 index 0000000..2328545 --- /dev/null +++ b/dart/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 Dart version +dart --version + +# Replace startup variables +MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g') +echo ":/home/container$ ${MODIFIED_STARTUP}" + +# Run the server +eval ${MODIFIED_STARTUP}