Преглед на файлове

[docker] generate server config on first run

CzBiX преди 9 години
родител
ревизия
c07cc6c6af
променени са 5 файла, в които са добавени 25 реда и са изтрити 12 реда
  1. 10 6
      tools/docker/Dockerfile
  2. 6 2
      tools/docker/README.md
  3. 0 4
      tools/docker/build.sh
  4. 8 0
      tools/docker/docker-entrypoint.sh
  5. 1 0
      tools/docker/gen-server-cfg.sh

+ 10 - 6
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"]

+ 6 - 2
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:
 

+ 0 - 4
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 ./

+ 8 - 0
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 "$@"

+ 1 - 0
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 <<EOF > server-cfg.json
 {