diff --git a/.dockerignore b/.dockerignore index c089806..ef26b8a 100644 --- a/.dockerignore +++ b/.dockerignore @@ -4,7 +4,6 @@ output docs build .vscode -artifacts bin node_modules .DS_Store \ No newline at end of file diff --git a/Makefile b/Makefile index 76e1dba..7f3bbaf 100644 --- a/Makefile +++ b/Makefile @@ -9,28 +9,36 @@ SERVER_IMAGE = kt-connect-server # run unit test unit-test: - mkdir -p artifacts/report - go test -v -json -cover -coverprofile artifacts/report/cover.out ./... + mkdir -p artifacts/report/coverage + go test -v -json -cover -coverprofile artifacts/report/coverage/cover.out ./... + go tool cover -html=artifacts/report/coverage/cover.out -o artifacts/report/coverage/index.html -# build this first,it's the base image -build-builder: - docker build -t $(PREFIX)/$(BUILDER_IMAGE):$(TAG) -f docker/builder/Dockerfile . +# build kt project +build: build-connect build-shadow + +# build ktctl +build-connect: + bin/build-ktctl + bin/archive # build this image before shadow build-shadow-base: docker build -t $(PREFIX)/$(SHADOW_BASE_IMAGE):$(TAG) -f docker/shadow/Dockerfile_base . +# build shadow build-shadow: + GOARCH=amd64 GOOS=linux go build -gcflags "all=-N -l" -o artifacts/shadow/shadow-linux-amd64 cmd/shadow/main.go docker build -t $(PREFIX)/$(SHADOW_IMAGE):$(TAG) -f docker/shadow/Dockerfile . + docker push $(PREFIX)/$(SHADOW_IMAGE):$(TAG) + +# build this first,it's the base image +build-builder: + docker build -t $(PREFIX)/$(BUILDER_IMAGE):$(TAG) -f docker/builder/Dockerfile . # dlv for debug build-shadow-dlv: bin/build-shadow-dlv -build-connect: - bin/build-ktctl - bin/archive - build-dashboard: docker build -t $(PREFIX)/$(DASHBOARD_IMAGE):$(TAG) -f docker/dashboard/Dockerfile . && \ diff --git a/docker/kt-connect/Dockerfile b/docker/kt-connect/Dockerfile deleted file mode 100644 index 938020d..0000000 --- a/docker/kt-connect/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM registry.cn-hangzhou.aliyuncs.com/rdc-incubator/builder -ENV GO111MODULE on -WORKDIR /go/src/github.com/alibaba/kt-connect/ -COPY . . -RUN GOARCH=amd64 GOOS=linux go build -o "output/ktctl/ktctl_linux_amd64" ./cmd/ktctl -RUN GOARCH=386 GOOS=linux go build -o "output/ktctl/ktctl_linux_386" ./cmd/ktctl -RUN GOARCH=amd64 GOOS=darwin go build -o "output/ktctl/ktctl_darwin_amd64" ./cmd/ktctl -RUN GOARCH=386 GOOS=darwin go build -o "output/ktctl/ktctl_darwin_386" ./cmd/ktctl -RUN GOARCH=386 GOOS=windows go build -o "output/ktctl/ktctl_windows_386.exe" ./cmd/ktctl -RUN GOARCH=amd64 GOOS=windows go build -o "output/ktctl/ktctl_windows_amd64.exe" ./cmd/ktctl \ No newline at end of file diff --git a/docker/shadow/Dockerfile b/docker/shadow/Dockerfile index a0ac9c9..fd3b787 100644 --- a/docker/shadow/Dockerfile +++ b/docker/shadow/Dockerfile @@ -1,11 +1,11 @@ -FROM registry.cn-hangzhou.aliyuncs.com/rdc-incubator/builder +FROM golang:1.13 ENV GO111MODULE on -WORKDIR /go/src/github.com/alibaba/kt-connect/ -COPY . . -RUN GOARCH=amd64 GOOS=linux go build -gcflags "all=-N -l" -o bin/kt-shadow cmd/shadow/main.go +# Install go debugger +RUN go get -u github.com/go-delve/delve/cmd/dlv FROM registry.cn-hangzhou.aliyuncs.com/rdc-incubator/shadow-base -COPY --from=0 /go/src/github.com/alibaba/kt-connect/bin/kt-shadow /usr/sbin/kt-shadow +COPY artifacts/shadow/shadow-linux-amd64 /usr/sbin/shadow-linux-amd64 +COPY --from=0 /go/bin/dlv /usr/sbin/dlv RUN apt-get install -y net-tools ADD docker/shadow/run.sh /run.sh RUN chmod 755 /run.sh diff --git a/docker/shadow/run.sh b/docker/shadow/run.sh index ee8c8de..1a034e1 100644 --- a/docker/shadow/run.sh +++ b/docker/shadow/run.sh @@ -5,7 +5,7 @@ cp /root/authorized/authorized_keys /root/.ssh /usr/sbin/sshd -D & if [[ "${1}" = "--debug" ]]; then - /usr/sbin/dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient exec /usr/sbin/kt-shadow + /usr/sbin/dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient exec /usr/sbin/shadow-linux-amd64 else - /usr/sbin/kt-shadow + /usr/sbin/shadow-linux-amd64 fi