penguin/tinyproxy

An L4 proxy designed to act as a tiny transparent shim

commit ab45c57c1664263274b40349b33a510ba2bb7912

author斟酌 鵬兄 <tgckpg@gmail.com>
date2026-05-26T17:35:05Z
subjectdocker to use github artifacts directly
commit ab45c57c1664263274b40349b33a510ba2bb7912
Author: 斟酌 鵬兄 <tgckpg@gmail.com>
Date:   2026-05-26T17:35:05Z

    docker to use github artifacts directly
---
 .github/workflows/cmake-multi-platform.yml | 38 +++++++++++++++++++++++++-----
 github.Dockerfile                          |  9 +++++++
 2 files changed, 41 insertions(+), 6 deletions(-)

diff --git a/.github/workflows/cmake-multi-platform.yml b/.github/workflows/cmake-multi-platform.yml
index cdbb1af..7f07d13 100644
--- a/.github/workflows/cmake-multi-platform.yml
+++ b/.github/workflows/cmake-multi-platform.yml
@@ -214,8 +214,6 @@ jobs:
     needs:
       - linux-musl-x86_64
       - linux-musl-arm64
-      - macos
-      - windows
 
     permissions:
       contents: read
@@ -224,14 +222,42 @@ jobs:
     steps:
       - uses: actions/checkout@v4
 
+      - name: Download Linux artifacts
+        uses: actions/download-artifact@v4
+        with:
+          path: docker-artifacts
+          pattern: tinyproxy-Linux-*
+          merge-multiple: true
+
+      - name: Prepare Docker rootfs
+        run: |
+          mkdir -p rootfs-amd64 rootfs-arm64
+
+          mkdir -p tmp/amd64 tmp/arm64
+
+          tar -xzf docker-artifacts/tinyproxy-Linux-X64.tar.gz -C tmp/amd64
+          tar -xzf docker-artifacts/tinyproxy-Linux-ARM64.tar.gz -C tmp/arm64
+
+          mkdir -p rootfs-amd64/usr/bin rootfs-amd64/etc
+          mkdir -p rootfs-arm64/usr/bin rootfs-arm64/etc
+
+          cp tmp/amd64/tinyproxy/tinyproxy rootfs-amd64/usr/bin/tinyproxy
+          cp tmp/amd64/tinyproxy/tinyproxy.conf rootfs-amd64/etc/tinyproxy.conf
+
+          cp tmp/arm64/tinyproxy/tinyproxy rootfs-arm64/usr/bin/tinyproxy
+          cp tmp/arm64/tinyproxy/tinyproxy.conf rootfs-arm64/etc/tinyproxy.conf
+
+          chmod 0755 rootfs-amd64/usr/bin/tinyproxy
+          chmod 0755 rootfs-arm64/usr/bin/tinyproxy
+
+          file rootfs-amd64/usr/bin/tinyproxy
+          file rootfs-arm64/usr/bin/tinyproxy
+
       - name: Set image name
         run: |
           image="ghcr.io/${GITHUB_REPOSITORY}"
           echo "IMAGE_NAME=${image,,}" >> "$GITHUB_ENV"
 
-      - name: Set up QEMU
-        uses: docker/setup-qemu-action@v4
-
       - name: Set up Docker Buildx
         uses: docker/setup-buildx-action@v4
 
@@ -246,7 +272,7 @@ jobs:
         uses: docker/build-push-action@v7
         with:
           context: .
-          file: ./Dockerfile
+          file: ./github.Dockerfile
           platforms: linux/amd64,linux/arm64
           push: true
           tags: |
diff --git a/github.Dockerfile b/github.Dockerfile
new file mode 100644
index 0000000..d46c753
--- /dev/null
+++ b/github.Dockerfile
@@ -0,0 +1,9 @@
+FROM scratch
+
+ARG TARGETARCH
+
+COPY rootfs-${TARGETARCH}/usr/bin/tinyproxy /usr/bin/tinyproxy
+COPY rootfs-${TARGETARCH}/etc/tinyproxy.conf /etc/tinyproxy.conf
+
+ENTRYPOINT ["/usr/bin/tinyproxy"]
+CMD ["-c", "/etc/tinyproxy.conf"]