From c07cc6c6af5ff73e6086f8821699ea55777872a2 Mon Sep 17 00:00:00 2001 From: CzBiX Date: Mon, 22 Feb 2016 17:57:43 +0800 Subject: [PATCH] [docker] generate server config on first run --- tools/docker/Dockerfile | 16 ++++++++++------ tools/docker/README.md | 8 ++++++-- tools/docker/build.sh | 4 ---- tools/docker/docker-entrypoint.sh | 8 ++++++++ tools/docker/gen-server-cfg.sh | 1 + 5 files changed, 25 insertions(+), 12 deletions(-) create mode 100755 tools/docker/docker-entrypoint.sh diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile index bd3dd32b..a829585b 100644 --- a/tools/docker/Dockerfile +++ b/tools/docker/Dockerfile @@ -1,10 +1,14 @@ FROM golang:latest -RUN go get -u github.com/v2ray/v2ray-core -RUN rm -f $GOPATH/bin/build -RUN go install github.com/v2ray/v2ray-core/tools/build -RUN $GOPATH/bin/build +RUN go get -u github.com/v2ray/v2ray-core \ + && rm -f $GOPATH/bin/build \ + && go install github.com/v2ray/v2ray-core/tools/build \ + && build \ + && rm -rf pkg src EXPOSE 27183 -ADD server-cfg.json /go/server-cfg.json -CMD /go/bin/v2ray-custom-linux-64/v2ray --config="/go/server-cfg.json" +COPY gen-server-cfg.sh /go/gen-server-cfg.sh +COPY docker-entrypoint.sh /entrypoint.sh + +ENTRYPOINT ["/entrypoint.sh"] +CMD ["/go/bin/v2ray-custom-linux-64/v2ray", "--config=/go/server-cfg.json"] diff --git a/tools/docker/README.md b/tools/docker/README.md index 69401a7b..8594ddf6 100644 --- a/tools/docker/README.md +++ b/tools/docker/README.md @@ -16,8 +16,12 @@ Then spin up a v2ray instance with: ./run.sh ``` -The build script will generate a server config file with random user id. You -can get it from `server-cfg.json`. +The docker image will generate a server config file with random user id on first run. +You can get see it with: + +```bash +docker logs v2ray +``` To tail the access log, run: diff --git a/tools/docker/build.sh b/tools/docker/build.sh index 677b15b6..001d8325 100755 --- a/tools/docker/build.sh +++ b/tools/docker/build.sh @@ -1,7 +1,3 @@ #!/bin/bash -if [ ! -e server-cfg.json ]; then - ./gen-server-config.sh -fi - docker build --rm=true --tag=$USER/v2ray ./ diff --git a/tools/docker/docker-entrypoint.sh b/tools/docker/docker-entrypoint.sh new file mode 100755 index 00000000..db1a3427 --- /dev/null +++ b/tools/docker/docker-entrypoint.sh @@ -0,0 +1,8 @@ +#!/bin/bash +set -e + +if [ ! -e "server-cfg.json" ]; then + ./gen-server-cfg.sh +fi + +exec "$@" diff --git a/tools/docker/gen-server-cfg.sh b/tools/docker/gen-server-cfg.sh index 6974cd8a..4886746d 100755 --- a/tools/docker/gen-server-cfg.sh +++ b/tools/docker/gen-server-cfg.sh @@ -7,6 +7,7 @@ rand_str () { } ID="$(rand_str 8)-$(rand_str 4)-$(rand_str 4)-$(rand_str 4)-$(rand_str 12)" +echo "Generated client ID: $ID" cat < server-cfg.json {