first commit

This commit is contained in:
Stephen Simpson
2025-04-29 10:31:19 -07:00
commit 2a0066441b
4 changed files with 79 additions and 0 deletions

View File

@@ -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

20
Dockerfile Normal file
View File

@@ -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"]

1
README.md Normal file
View File

@@ -0,0 +1 @@
# speedtest-cli-container

7
entrypoint.sh Normal file
View File

@@ -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 "$@"