| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- # Dockerfile to build an image with the local version of psiphon-tunnel-core.
- #
- # See README.md for usage instructions.
- FROM ubuntu:16.04
- # Install system-level dependencies.
- ENV DEBIAN_FRONTEND=noninteractive
- RUN apt-get update -y && apt-get install -y --no-install-recommends \
- build-essential \
- ca-certificates \
- curl \
- gcc-mingw-w64-i686 \
- gcc-mingw-w64-x86-64 \
- gcc-multilib \
- git \
- mingw-w64 \
- mercurial \
- pkg-config \
- upx \
- && apt-get clean \
- && rm -rf /var/lib/apt/lists/*
- # Install Go.
- ENV GOVERSION=go1.7.3 GOROOT=/usr/local/go GOPATH=/go PATH=$PATH:/usr/local/go/bin:/go/bin CGO_ENABLED=1
- RUN curl -L https://storage.googleapis.com/golang/$GOVERSION.linux-amd64.tar.gz -o /tmp/go.tar.gz \
- && tar -C /usr/local -xzf /tmp/go.tar.gz \
- && rm /tmp/go.tar.gz \
- && echo $GOVERSION > $GOROOT/VERSION
- # Get external Go dependencies.
- RUN go get github.com/mitchellh/gox \
- && go get github.com/pwaller/goupx
- # Setup OpenSSL libray.
- ENV OPENSSL_VERSION=1.0.2h
- ENV PKG_CONFIG_PATH_32=/tmp/openssl/32/openssl-$OPENSSL_VERSION PKG_CONFIG_PATH_64=/tmp/openssl/64/openssl-$OPENSSL_VERSION
- RUN mkdir -p /tmp/openssl/32 \
- && mkdir -p /tmp/openssl/64 \
- && curl -L https://github.com/Psiphon-Labs/psiphon-tunnel-core/raw/master/openssl/openssl-$OPENSSL_VERSION.tar.gz -o /tmp/openssl.tar.gz \
- && tar -C /tmp/openssl/32 -xzf /tmp/openssl.tar.gz \
- && tar -C /tmp/openssl/64 -xzf /tmp/openssl.tar.gz \
- && rm /tmp/openssl.tar.gz
- RUN cd $PKG_CONFIG_PATH_32 \
- && ./Configure --cross-compile-prefix=i686-w64-mingw32- mingw \
- no-shared \
- no-ssl2 \
- no-ssl3 \
- no-comp \
- no-hw \
- no-md2 \
- no-md4 \
- no-rc2 \
- no-rc5 \
- no-krb5 \
- no-ripemd160 \
- no-idea \
- no-gost \
- no-camellia \
- no-seed \
- no-3des \
- no-heartbeats \
- && make depend \
- && make \
- && cd $PKG_CONFIG_PATH_64 \
- && ./Configure --cross-compile-prefix=x86_64-w64-mingw32- mingw64 \
- no-shared \
- no-ssl2 \
- no-ssl3 \
- no-comp \
- no-hw \
- no-md2 \
- no-md4 \
- no-rc2 \
- no-rc5 \
- no-krb5 \
- no-ripemd160 \
- no-idea \
- no-gost \
- no-camellia \
- no-seed \
- no-3des \
- no-heartbeats \
- && make depend \
- && make
- WORKDIR $GOPATH/src/github.com/Psiphon-Labs/psiphon-tunnel-core/ConsoleClient
|