From 2a0066441b94dfaa433bd7e075dedb50679f83d4 Mon Sep 17 00:00:00 2001 From: Stephen Simpson Date: Tue, 29 Apr 2025 10:31:19 -0700 Subject: [PATCH] first commit --- .github2/workflows/docker-image-linux.yml | 51 +++++++++++++++++++++++ Dockerfile | 20 +++++++++ README.md | 1 + entrypoint.sh | 7 ++++ 4 files changed, 79 insertions(+) create mode 100644 .github2/workflows/docker-image-linux.yml create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 entrypoint.sh diff --git a/.github2/workflows/docker-image-linux.yml b/.github2/workflows/docker-image-linux.yml new file mode 100644 index 0000000..224fbfa --- /dev/null +++ b/.github2/workflows/docker-image-linux.yml @@ -0,0 +1,51 @@ +name: Create and publish a Docker image for Linux +on: + - push + - workflow_dispatch +env: + REGISTRY: ghcr.io + GITHUBUSER: ${{ github.repository_owner }} + IMAGE_NAME: speedtest-cli +jobs: + build-and-push-image: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata for Docker + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.GITHUBUSER }}/${{ env.IMAGE_NAME }} + tags: | + type=raw,value=latest + type=sha,format=short + + - name: Build and push both architectures + uses: docker/build-push-action@v6 + with: + context: . + file: ./Dockerfile + push: true + platforms: linux/amd64,linux/arm64 + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=gha + cache-to: type=gha,mode=max diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..69b409f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +FROM alpine:latest + +RUN apk add --no-cache wget ca-certificates tar + +ARG TARGETARCH + +RUN if [ "$TARGETARCH" = "amd64" ]; then \ + ARCH="x86_64"; \ + elif [ "$TARGETARCH" = "arm64" ]; then \ + ARCH="aarch64"; \ + fi && \ + wget -q https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-linux-${ARCH}.tgz && \ + tar -xzf ookla-speedtest-1.2.0-linux-${ARCH}.tgz -C /usr/bin && \ + rm ookla-speedtest-1.2.0-linux-${ARCH}.tgz && \ + chmod +x /usr/bin/speedtest + +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh + +ENTRYPOINT ["/entrypoint.sh"] \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..3c895ef --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# speedtest-cli-container diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 0000000..c91d1ce --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +# Set terminal type +export TERM=xterm-256color + +# Run xsos with all arguments passed to the container +/usr/bin/speedtest --accept-license "$@" \ No newline at end of file