Selaa lähdekoodia

Create goproxy

Stille 4 vuotta sitten
vanhempi
sitoutus
a41c09260d
4 muutettua tiedostoa jossa 101 lisäystä ja 0 poistoa
  1. 42 0
      .github/workflows/goproxy.yml
  2. 15 0
      goproxy/Dockerfile
  3. 31 0
      goproxy/README.md
  4. 13 0
      goproxy/docker-compose.yml

+ 42 - 0
.github/workflows/goproxy.yml

@@ -0,0 +1,42 @@
+name: "goproxy docker build"
+
+env:
+  PROJECT: goproxy
+
+on:
+  workflow_dispatch:
+
+jobs:
+  build:
+    runs-on: ubuntu-latest
+    env:
+      ACTIONS_ALLOW_UNSECURE_COMMANDS: true
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v2
+      - name: Set tag
+        id: tag
+        run: |
+          TAG=$(cat ${{ env.PROJECT }}/Dockerfile | awk 'NR==4 {print $3}')
+          echo "::set-env name=TAG::$TAG"
+      - name: Docker Hub login
+        env:
+          DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
+          DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
+        run: |
+          echo "${DOCKER_PASSWORD}" | docker login --username ${DOCKER_USERNAME} --password-stdin
+      - name: Set up Docker Buildx
+        id: buildx
+        uses: crazy-max/ghaction-docker-buildx@v1
+        with:
+          buildx-version: latest
+      - name: Build Dockerfile
+        env:
+          DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
+        run: |
+          docker buildx build \
+          --platform=linux/amd64,linux/arm64 \
+          --output "type=image,push=true" \
+          --file ${{ env.PROJECT }}/Dockerfile ./${{ env.PROJECT }} \
+          --tag $(echo "${DOCKER_USERNAME}" | tr '[:upper:]' '[:lower:]')/${{ env.PROJECT }}:latest \
+          --tag $(echo "${DOCKER_USERNAME}" | tr '[:upper:]' '[:lower:]')/${{ env.PROJECT }}:${TAG}

+ 15 - 0
goproxy/Dockerfile

@@ -0,0 +1,15 @@
+FROM alpine
+MAINTAINER Stille <[email protected]>
+
+ENV VERSION 10.7
+
+RUN set -xe && \
+    UNAME=$(uname -m) && if [ "$UNAME" = "x86_64" ]; then export PLATFORM=amd64 ; else export PLATFORM=arm64-v8 ; fi && \
+    apk add tzdata && \
+    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
+    echo "Asia/Shanghai" > /etc/timezone && \
+    apk del tzdata && \
+    wget https://github.com/snail007/goproxy/releases/download/v${VERSION}/proxy-linux-${PLATFORM}.tar.gz && \
+    tar -xvf proxy-linux-${PLATFORM}.tar.gz
+
+CMD ["/proxy"]

+ 31 - 0
goproxy/README.md

@@ -0,0 +1,31 @@
+# goproxy for docker
+
+GitHub [stilleshan/dockerfile](https://github.com/stilleshan/dockerfile)  
+Docker [stilleshan/goproxy](https://hub.docker.com/r/stilleshan/goproxy)
+> *docker image support for X86 and ARM*
+
+## docker 启动
+### 单个代理服务
+启动一个端口为`11111`的 http 代理
+```shell
+docker run -d --name goproxy --restart always --network host stilleshan/goproxy /proxy http -p :11111
+```
+
+启动一个端口为`22222`的 socks5 代理
+```shell
+docker run -d --name goproxy --restart always --network host stilleshan/goproxy /proxy socks -p :22222
+```
+
+### 多个代理服务
+单个容器同时启动`http`和`socks5`代理
+```shell
+docker run -d --name goproxy --restart always --network host stilleshan/goproxy sh -c '/proxy http -p :11111 & /proxy socks -p :22222'
+```
+> *更多服务参考 [snail007/goproxy](https://github.com/snail007/goproxy) 自行添加命令,每项服务命令之间使用 **&** 符号分隔,最后一项服务命令末尾无需 **&** 符号.*
+
+## docker compose 启动
+下载 [docker-compose.yml](https://raw.githubusercontent.com/stilleshan/dockerfile/main/goproxy/docker-compose.yml) 执行以下命令启动:
+```shell
+docker-compose up -d
+```
+> *更多服务参考 [snail007/goproxy](https://github.com/snail007/goproxy) 自行添加命令,每项服务命令之间使用 **&** 符号分隔,最后一项服务命令末尾无需 **&** 符号.*

+ 13 - 0
goproxy/docker-compose.yml

@@ -0,0 +1,13 @@
+version: "3"
+services:
+  goproxy:
+    image: stilleshan/goproxy
+    container_name: goproxy
+    network_mode: host
+    restart: always
+    command: 
+      - sh
+      - -c
+      - |
+          /proxy http -p :11111 &
+          /proxy socks -p :22222