Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d62b101336 | ||
|
|
b2d368dedd | ||
|
|
5652183e5c | ||
|
|
f72f5ddbea | ||
|
|
044298117f | ||
|
|
ac82876e54 | ||
|
|
f64df60fe0 | ||
|
|
2065b1d62e | ||
|
|
a464d3b418 | ||
|
|
4fd631a9d3 | ||
|
|
33b0888580 | ||
|
|
5a1caa3f40 | ||
|
|
b7c19a8c13 |
+26
-24
@@ -1,33 +1,34 @@
|
|||||||
ARG BUILDPLATFORM=$BUILDPLATFORM
|
ARG BUILDPLATFORM=$BUILDPLATFORM
|
||||||
FROM --platform=$BUILDPLATFORM golang:1.18 AS psiphon_builder
|
ARG GO_VERSION=1.24.1
|
||||||
|
FROM --platform=$BUILDPLATFORM golang:$GO_VERSION AS psiphon_builder
|
||||||
WORKDIR /go
|
WORKDIR /go
|
||||||
LABEL stage=builder
|
LABEL stage=builder
|
||||||
ARG VERSION=2.0.23
|
|
||||||
ARG BUILDOS
|
ARG BUILDOS
|
||||||
ARG BUILDARCH
|
ARG BUILDARCH
|
||||||
ARG TARGETS
|
ARG TARGETS
|
||||||
ENV DIR=/go/src/github.com/Psiphon-Labs/psiphon-tunnel-core \
|
ARG PSIPHON_VERSION
|
||||||
GO111MODULE=off \
|
ENV DIR=/go/src/github.com/Psiphon-Labs/psiphon-tunnel-core
|
||||||
CGO_ENABLED=0
|
ENV GO111MODULE=off
|
||||||
SHELL ["/bin/bash", "-c"]
|
ENV CGO_ENABLED=0
|
||||||
RUN TARGET_PALTFORMS=${TARGETS:-"$BUILDOS/$BUILDARCH"} && \
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||||
mkdir -p ${DIR} && \
|
RUN <<__SCRIPT__
|
||||||
curl -sL https://github.com/Psiphon-Labs/psiphon-tunnel-core/archive/refs/tags/v${VERSION}.tar.gz | \
|
TARGET_PALTFORMS=${TARGETS:-"$BUILDOS/$BUILDARCH"}
|
||||||
tar xz -C ${DIR} --strip-components=1 && \
|
TARGET_PALTFORMS=${TARGET_PALTFORMS//,/ }
|
||||||
(IFS=','; for PLATFORM in $TARGET_PALTFORMS; \
|
mkdir -p ${DIR}
|
||||||
do \
|
curl -sL https://github.com/Psiphon-Labs/psiphon-tunnel-core/archive/refs/tags/v${PSIPHON_VERSION}.tar.gz | tar xz -C ${DIR} --strip-components=1
|
||||||
OS=${PLATFORM%%/*} && \
|
for PLATFORM in $TARGET_PALTFORMS
|
||||||
ARCH=${PLATFORM#*/} && \
|
do
|
||||||
ARCH=${ARCH%/*} && \
|
OS=${PLATFORM%%/*}
|
||||||
VERSION=${PLATFORM##*/} && \
|
ARCH=${PLATFORM#*/}
|
||||||
TARGETVARIANT=${VERSION/$ARCH/} && \
|
ARCH=${ARCH%/*}
|
||||||
VERSION=${TARGETVER/v/} && \
|
VERSION=${PLATFORM##*/}
|
||||||
GOOS=${OS} GOARCH=${ARCH} go install -a -tags netgo \
|
TARGETVARIANT=${VERSION/$ARCH/}
|
||||||
-ldflags '-w -extldflags "-static"' \
|
VERSION=${TARGETVER/v/}
|
||||||
github.com/Psiphon-Labs/psiphon-tunnel-core/ConsoleClient && \
|
GOOS=${OS} GOARCH=${ARCH} go install -a -tags netgo -ldflags '-w -extldflags "-static"' github.com/Psiphon-Labs/psiphon-tunnel-core/ConsoleClient
|
||||||
BINARY=$(find /go/bin/* -name "ConsoleClient*") && \
|
BINARY=$(find /go/bin/* -name "ConsoleClient*")
|
||||||
mv ${BINARY} /go/psiphon_${OS}_${ARCH}_${TARGETVARIANT}; \
|
mv ${BINARY} /go/psiphon_${OS}_${ARCH}_${TARGETVARIANT}
|
||||||
done)
|
done
|
||||||
|
__SCRIPT__
|
||||||
|
|
||||||
FROM swarupsengupta2007/alpine-s6:3.16.0
|
FROM swarupsengupta2007/alpine-s6:3.16.0
|
||||||
ARG TARGETOS
|
ARG TARGETOS
|
||||||
@@ -37,4 +38,5 @@ COPY base/ /
|
|||||||
COPY psiphon.config ${DEF_DEFAULTS}
|
COPY psiphon.config ${DEF_DEFAULTS}
|
||||||
COPY --from=psiphon_builder /go/psiphon_${TARGETOS}_${TARGETARCH}_${TARGETVARIANT} ${DEF_APP}/psiphon
|
COPY --from=psiphon_builder /go/psiphon_${TARGETOS}_${TARGETARCH}_${TARGETVARIANT} ${DEF_APP}/psiphon
|
||||||
EXPOSE 8080 1080
|
EXPOSE 8080 1080
|
||||||
|
HEALTHCHECK --interval=30s --timeout=5s --start-period=2m --retries=3 CMD netstat -ltn|grep 1080 || exit 1
|
||||||
VOLUME /config
|
VOLUME /config
|
||||||
|
|||||||
@@ -30,15 +30,24 @@ docker buildx create --name cross-platform --platform ${TARGETS} --use
|
|||||||
docker buildx build -t <your_tag> . --load
|
docker buildx build -t <your_tag> . --load
|
||||||
|
|
||||||
# build for multi-arch and push to registry
|
# build for multi-arch and push to registry
|
||||||
docker buildx build --build-arg TARGETS=${TARGETS} -t <your_username>/<your_tag> \
|
# optional, choose targets (defaults to the following list)
|
||||||
--platform ${TARGETS} . --push
|
export TARGETS="linux/amd64,linux/386,linux/arm64,linux/arm/v7,linux/arm/v6"
|
||||||
|
|
||||||
|
# choose psiphon version
|
||||||
|
export VERSION=2.0.31
|
||||||
|
|
||||||
|
# choose go version (currently 1.22.7)
|
||||||
|
export GO_VERSION=1.22.7
|
||||||
|
|
||||||
|
# run the script
|
||||||
|
./make.bash --push
|
||||||
```
|
```
|
||||||
|
|
||||||
Build-args available
|
Build-args available
|
||||||
|build-arg|default|Description|
|
|build-arg|Description|
|
||||||
|--|--|--|
|
|--|--|
|
||||||
|VERSION|2.0.23|psiphon-tunnel-core release version|
|
|VERSION|psiphon-tunnel-core release version|
|
||||||
|TARGETS|\<BUIDLOS\>/\<BUILDARCH\>|Targets for cross-compilation for the build stage|
|
|TARGETS|\<BUIDLOS\>/\<BUILDARCH\> (Targets for cross-compilation for the build stage)|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Usage
|
# Usage
|
||||||
|
|||||||
Executable
+9
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if test "$1" -eq 256 ; then
|
||||||
|
e=$((128 + $2))
|
||||||
|
else
|
||||||
|
e="$1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$e" > /run/s6-linux-init-container-results/exitcode
|
||||||
@@ -1,11 +1,13 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
TARGETS="linux/amd64,linux/386,linux/arm64,linux/arm/v7,linux/arm/v6"
|
MK_TARGETS=${TARGETS:-"linux/amd64,linux/386,linux/arm64,linux/arm/v7,linux/arm/v6"}
|
||||||
VERSION=2.0.29
|
MK_VERSION=${VERSION:-2.0.32}
|
||||||
|
MK_GO_VERSION=${GO_VERSION:-1.23.7}
|
||||||
|
|
||||||
sudo docker buildx build \
|
docker buildx build \
|
||||||
--build-arg TARGETS=${TARGETS} \
|
--build-arg TARGETS=${MK_TARGETS} \
|
||||||
--build-arg VERSION=${VERSION} \
|
--build-arg PSIPHON_VERSION=${MK_VERSION} \
|
||||||
-t swarupsengupta2007/psiphon:${VERSION} \
|
--build-arg GO_VERSION=${MK_GO_VERSION} \
|
||||||
|
-t swarupsengupta2007/psiphon:${MK_VERSION} \
|
||||||
-t swarupsengupta2007/psiphon:latest \
|
-t swarupsengupta2007/psiphon:latest \
|
||||||
--platform ${TARGETS} . $1
|
--platform ${MK_TARGETS} . $1
|
||||||
|
|||||||
Reference in New Issue
Block a user