mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2024-11-21 23:29:38 +00:00
Fix build node and docker-image
- Make Dockerfile useful and minimal - Update Makefile commands build / image - Docker should not ignore vendor (go build -mod=vendor)
This commit is contained in:
parent
902125cbeb
commit
9a79c00417
3 changed files with 48 additions and 20 deletions
|
@ -1,3 +1,2 @@
|
||||||
vendor
|
|
||||||
.git
|
.git
|
||||||
chains
|
chains
|
||||||
|
|
42
Dockerfile
42
Dockerfile
|
@ -1,16 +1,40 @@
|
||||||
FROM vidsyhq/go-base:latest
|
# Builder image
|
||||||
LABEL maintainers="anthdm,stevenjack"
|
FROM golang:1.12-alpine3.10 as builder
|
||||||
|
|
||||||
ENV NETMODE=testnet
|
RUN set -x \
|
||||||
|
&& apk add --no-cache git \
|
||||||
|
&& mkdir -p /tmp
|
||||||
|
|
||||||
ARG VERSION
|
COPY . /neo-go
|
||||||
|
|
||||||
|
WORKDIR /neo-go
|
||||||
|
|
||||||
|
ARG REPO=repository
|
||||||
|
ARG VERSION=dev
|
||||||
|
|
||||||
|
# https://github.com/golang/go/wiki/Modules#how-do-i-use-vendoring-with-modules-is-vendoring-going-away
|
||||||
|
# go build -mod=vendor
|
||||||
|
RUN set -x \
|
||||||
|
&& export BUILD_TIME=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
|
||||||
|
&& export GOGC=off \
|
||||||
|
&& export CGO_ENABLED=0 \
|
||||||
|
&& export LDFLAGS="-X ${REPO}/config.Version=${VERSION} -X ${REPO}/config.BuildTime=${BUILD_TIME}" \
|
||||||
|
&& go build -v -mod=vendor -ldflags "${LDFLAGS}" -o /go/bin/node ./cli/main.go
|
||||||
|
|
||||||
|
# Executable image
|
||||||
|
FROM alpine:3.10
|
||||||
|
|
||||||
|
ENV NETMODE=testnet
|
||||||
|
ARG VERSION
|
||||||
LABEL version=$VERSION
|
LABEL version=$VERSION
|
||||||
|
|
||||||
ADD bin/neo-go /usr/bin/neo-go
|
WORKDIR /
|
||||||
ADD config /config
|
|
||||||
|
|
||||||
RUN chmod u+x /usr/bin/neo-go
|
ENV NETMODE=testnet
|
||||||
RUN mkdir -p /chains
|
COPY --from=builder /neo-go/config /config
|
||||||
|
COPY --from=builder /go/bin/node /usr/bin/node
|
||||||
|
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
|
||||||
|
|
||||||
|
ENTRYPOINT ["/usr/bin/node"]
|
||||||
|
|
||||||
ENTRYPOINT ["neo-go"]
|
|
||||||
CMD ["node", "--config-path", "./config", "--testnet"]
|
CMD ["node", "--config-path", "./config", "--testnet"]
|
||||||
|
|
25
Makefile
25
Makefile
|
@ -3,18 +3,22 @@ BUILD_TIME = "$(shell date -u +\"%Y-%m-%dT%H:%M:%SZ\")"
|
||||||
REPONAME = "neo-go"
|
REPONAME = "neo-go"
|
||||||
NETMODE ?= "privnet"
|
NETMODE ?= "privnet"
|
||||||
|
|
||||||
|
REPO ?= "$(shell go list -m)"
|
||||||
VERSION ?= "$(shell git describe --tags 2>/dev/null | sed 's/^v//')"
|
VERSION ?= "$(shell git describe --tags 2>/dev/null | sed 's/^v//')"
|
||||||
|
BUILD_FLAGS = "-X $(REPO)/config.Version=$(VERSION) -X $(REPO)/config.BuildTime=$(BUILD_TIME)"
|
||||||
|
|
||||||
build:
|
build: deps
|
||||||
@echo "=> Building darwin binary"
|
@echo "=> Building binary"
|
||||||
@go build -i -ldflags "-X github.com/CityOfZion/neo-go/config.Version=${VERSION}-dev -X github.com/CityOfZion/neo-go/config.BuildTime=${BUILD_TIME}" -o ./bin/neo-go ./cli/main.go
|
@set -x \
|
||||||
|
&& export GOGC=off \
|
||||||
|
&& export CGO_ENABLED=0 \
|
||||||
|
&& echo $(VERSION)-$(BUILD_TIME) \
|
||||||
|
&& go build -v -mod=vendor -ldflags $(BUILD_FLAGS) -o ./bin/node ./cli/main.go
|
||||||
|
|
||||||
build-image:
|
image: deps
|
||||||
docker build -t cityofzion/neo-go --build-arg VERSION=${VERSION} .
|
@echo "=> Building image"
|
||||||
|
@docker build -t cityofzion/neo-go:latest --build-arg REPO=$(REPO) --build-arg VERSION=$(VERSION) .
|
||||||
build-linux:
|
@docker build -t cityofzion/neo-go:$(VERSION) --build-arg REPO=$(REPO) --build-arg VERSION=$(VERSION) .
|
||||||
@echo "=> Building linux binary"
|
|
||||||
@GOOS=linux go build -i -ldflags "-X github.com/CityOfZion/neo-go/config.Version=${VERSION}-dev -X github.com/CityOfZion/neo-go/config.BuildTime=${BUILD_TIME}" -o ./bin/neo-go ./cli/main.go
|
|
||||||
|
|
||||||
check-version:
|
check-version:
|
||||||
git fetch && (! git rev-list ${VERSION})
|
git fetch && (! git rev-list ${VERSION})
|
||||||
|
@ -26,7 +30,8 @@ clean-cluster:
|
||||||
@docker-compose rm -f
|
@docker-compose rm -f
|
||||||
|
|
||||||
deps:
|
deps:
|
||||||
@dep ensure
|
@go mod tidy -v
|
||||||
|
@go mod vendor
|
||||||
|
|
||||||
push-tag:
|
push-tag:
|
||||||
git checkout ${BRANCH}
|
git checkout ${BRANCH}
|
||||||
|
|
Loading…
Reference in a new issue