发布流程
上传至 Docker 仓库
推荐使用make还行处理:
APPNAME = kplcloudBIN = $(GOPATH)/binGOCMD = /usr/local/go/bin/goGOBUILD = $(GOCMD) buildGOINSTALL = $(GOCMD) installGOCLEAN = $(GOCMD) cleanGOTEST = $(GOCMD) testGOGET = $(GOCMD) getGORUN = $(GOCMD) runBINARY_UNIX = $(BIN)_unixPID = .pidHUB_ADDR = hub.kpaas.nsini.comDOCKER_USER =DOCKER_PWD =TAG = v0.0.11-testNAMESPACE = kpaasPWD = $(shell pwd)start:$(GOBUILD) -v$(BIN)/$(APPNAME) & echo $$! > $(PID)restart:@echo restart the app...@kill `cat $(PID)` || true$(BIN)/$(APPNAME) & echo $$! > $(PID)stop:@kill `cat $(PID)` || truebuild-linux:CGO_ENABLED=0 GOOS=linux GOARCH=amd64 $(GOBUILD) -o $(BINARY_UNIX) -vlogin:docker login -u $(DOCKER_USER) -p $(DOCKER_PWD) $(HUB_ADDR)build:# CGO_ENABLED=0 GOOS=linux GOARCH=amd64 $(GOBUILD) -o kplcloud -v ./cmd/server/main.godocker build --rm -t $(APPNAME):$(TAG) .docker-run:docker run -it --rm -p 8080:8080 -v $(PWD)/app.cfg:/etc/kplcloud/app.cfg -v $(PWD)/config_189.yaml:/etc/kplcloud/config.yaml $(APPNAME):$(TAG)push:docker image tag $(APPNAME):$(TAG) $(HUB_ADDR)/$(NAMESPACE)/$(APPNAME):$(TAG)docker push $(HUB_ADDR)/$(NAMESPACE)/$(APPNAME):$(TAG)run:GO111MODULE=on $(GORUN) ./cmd/server/main.go start -p :8080 -c ./app.cfg -k config_189.yaml
Dockerfile:
FROM golang:latest as build-envENV GO111MODULE=onENV BUILDPATH=github.com/kplcloud/kplcloudENV GOPROXY=https://goproxy.ioENV GOPATH=/goRUN mkdir -p /go/src/${BUILDPATH}COPY ./ /go/src/${BUILDPATH}RUN cd /go/src/${BUILDPATH}/cmd/server && CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go install -vFROM alpine:latestRUN apk update \&& apk upgrade \&& apk add --no-cache \ca-certificates \&& update-ca-certificates 2>/dev/null || trueCOPY --from=build-env /go/bin/server /go/bin/serverCOPY ./static /go/bin/staticWORKDIR /go/bin/CMD ["/go/bin/server", "start", "-p", ":8080", "-c", "/etc/kplcloud/app.cfg", "-k", "/etc/kplcloud/config.yaml"]
编译
$ make login$ make build
上传至docker仓库
$ make push
