Commit 389ce135 authored by nanahira's avatar nanahira

docker warp proxy

parent 3286f056
Pipeline #6224 failed with stages
in 5 minutes and 1 second
stages:
- build
- combine
- deploy
variables:
GIT_DEPTH: "1"
CONTAINER_TEST_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
CONTAINER_TEST_ARM_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-arm
CONTAINER_TEST_X86_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-x86
CONTAINER_RELEASE_IMAGE: $CI_REGISTRY_IMAGE:latest
before_script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
build-x86:
stage: build
tags:
- docker
script:
- docker build --pull -t $CONTAINER_TEST_X86_IMAGE .
- docker push $CONTAINER_TEST_X86_IMAGE
build-arm:
stage: build
tags:
- docker-arm
script:
- docker build --pull -t $CONTAINER_TEST_ARM_IMAGE .
- docker push $CONTAINER_TEST_ARM_IMAGE
combine:
stage: combine
tags:
- docker
script:
- docker pull $CONTAINER_TEST_X86_IMAGE
- docker pull $CONTAINER_TEST_ARM_IMAGE
- docker manifest create $CONTAINER_TEST_IMAGE --amend $CONTAINER_TEST_X86_IMAGE --amend $CONTAINER_TEST_ARM_IMAGE
- docker manifest push $CONTAINER_TEST_IMAGE
deploy_latest:
stage: deploy
tags:
- docker
script:
- docker pull $CONTAINER_TEST_IMAGE
- docker tag $CONTAINER_TEST_IMAGE $CONTAINER_RELEASE_IMAGE
- docker push $CONTAINER_RELEASE_IMAGE
only:
- master
deploy_tag:
stage: deploy
tags:
- docker
variables:
CONTAINER_TAG_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG
script:
- docker pull $CONTAINER_TEST_IMAGE
- docker tag $CONTAINER_TEST_IMAGE $CONTAINER_TAG_IMAGE
- docker push $CONTAINER_TAG_IMAGE
only:
- tags
FROM ubuntu:focal as base
RUN apt update && \
apt -y install build-essential && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
FROM base as builder
WORKDIR /build
COPY ./Makefile ./
COPY ./proxy.c ./
RUN make
FROM base
RUN apt update && \
apt -y install curl gnupg2 libcap2-bin && \
curl https://pkg.cloudflareclient.com/pubkey.gpg | apt-key add - && \
echo 'deb http://pkg.cloudflareclient.com/ buster main' | tee /etc/apt/sources.list.d/cloudflare-client.list && \
apt update && \
apt -y install cloudflare-warp && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
mkdir -p /root/.local/share/warp && \
echo 'yes' > ~/.local/share/warp/accepted-tos.txt
WORKDIR /usr/src/app
COPY --from=builder /build/proxy ./proxy
COPY ./entrypoint.sh ./
ENV LOCAL_PROXY_PORT 10080
ENV FORWARD_PROXY_PORT 8080
EXPOSE $FORWARD_PROXY_PORT
ENTRYPOINT [ "./entrypoint.sh" ]
CMD ["bash", "-c", "./proxy -l $FORWARD_PROXY_PORT -h localhost -p $LOCAL_PROXY_PORT -f"]
CFLAGS=-O2 -std=c99 -Wall
OPTFLAGS=-s -DUSE_SPLICE
LDFLAGS=
all:
gcc $(CFLAGS) $(OPTFLAGS) -o proxy proxy.c $(LDFLAGS)
tomato:
mipsel-uclibc-gcc $(CFLAGS) $(OPTFLAGS) -o proxy proxy.c $(LDFLAGS)
openwrt:
mipsel-linux-uclibc-gcc $(CFLAGS) $(OPTFLAGS) -o proxy proxy.c $(LDFLAGS)
backfire:
mipsel-openwrt-linux-uclibc-gcc $(CFLAGS) $(OPTFLAGS) -o proxy proxy.c $(LDFLAGS)
darwin:
gcc $(CFLAGS) -o proxy proxy.c $(LDFLAGS)
clean:
rm -f proxy proxy.exe
#!/bin/bash
warp-svc &
daemonReady=1
while [[ "$daemonReady" != "0" ]]; do
echo "Waiting for daemon start"
grep "cloudflare-warp/warp_service" /var/lib/cloudflare-warp/cfwarp_service_log.txt
daemonReady=$?
done
echo "Daemon started"
warp-cli --accept-tos register
warp-cli set-mode proxy
warp-cli set-proxy-port $LOCAL_PROXY_PORT
warp-cli connect
"$@"
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment