mirokuratczyk 1d91ec6351 Fix linux Docker builds пре 3 година
..
.gitignore 3f3a7d044f Updated Dockerfile and makefile to use go 1.5 and cross compile binaries for windows, linux, and osx; updated ConsoleClient README to use docker instructions; Added subheadings (for anchors) to main README пре 10 година
Dockerfile 65239046d5 Fix M1 Mac build пре 3 година
README.md 1d91ec6351 Fix linux Docker builds пре 3 година
main.go c97d6ff37a Remove dependencies and gomobile build info пре 3 година
make.bash 1d91ec6351 Fix linux Docker builds пре 3 година
signal.go e6a2fca483 Fix: SIGUSR2 not supported on Windows пре 7 година
signal_windows.go e6a2fca483 Fix: SIGUSR2 not supported on Windows пре 7 година

README.md

Psiphon Console Client README

Building with Docker

Note that you may need to use sudo docker below, depending on your OS.

Create the build image:
  1. While in the ConsoleClient directory, run the command: docker build --no-cache=true -t psiclient .

  2. Once completed, verify that you see an image named psiclient when running: docker images

Run the build:

Ensure that the command below is run from within the ConsoleClient directory

The --user "$(id -u):$(id -g)" flag must be omitted when building on macOS because manually specifying the UID/GID will cause the build to fail since Docker on macOS handles host to container UID/GID mapping automatically and will be unable to map the manually specified UID/GID to the current user.

cd .. && \
  docker run \
  --platform=linux/amd64 \
  --user "$(id -u):$(id -g)" \
  --rm \
  -v $PWD:/go/src/github.com/Psiphon-Labs/psiphon-tunnel-core \
  psiclient \
  /bin/bash -c './make.bash all' \
; cd -

This command can also be modified by:

  • replacing all with windows, linux, or osx as the first parameter to make.bash (as in ...&& ./make.bash windows) to only build binaries for the operating system of choice
    • if windows or linux is specified as the first parameter, the second parameter can be passed as either 32 or 64 (as in ...&& ./make.bash windows 32)to limit the builds to just one or the other (no second parameter means both will build)

When that command completes, the compiled binaries will be located in the bin directory (./bin, and everything under it will likely be owned by root, so be sure to chown to an appropriate user) under the current directory. The structure will be:

bin
├── darwin
│   └── psiphon-tunnel-core-x86_64
├── linux
│   └── psiphon-tunnel-core-i686
│   └── psiphon-tunnel-core-x86_64
└── windows
    └── psiphon-tunnel-core-i686.exe
    └── psiphon-tunnel-core-x86_64.exe