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
|
||||
chains
|
||||
|
|
42
Dockerfile
42
Dockerfile
|
@ -1,16 +1,40 @@
|
|||
FROM vidsyhq/go-base:latest
|
||||
LABEL maintainers="anthdm,stevenjack"
|
||||
# Builder image
|
||||
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
|
||||
|
||||
ADD bin/neo-go /usr/bin/neo-go
|
||||
ADD config /config
|
||||
WORKDIR /
|
||||
|
||||
RUN chmod u+x /usr/bin/neo-go
|
||||
RUN mkdir -p /chains
|
||||
ENV NETMODE=testnet
|
||||
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"]
|
||||
|
|
25
Makefile
25
Makefile
|
@ -3,18 +3,22 @@ BUILD_TIME = "$(shell date -u +\"%Y-%m-%dT%H:%M:%SZ\")"
|
|||
REPONAME = "neo-go"
|
||||
NETMODE ?= "privnet"
|
||||
|
||||
REPO ?= "$(shell go list -m)"
|
||||
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:
|
||||
@echo "=> Building darwin 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
|
||||
build: deps
|
||||
@echo "=> Building binary"
|
||||
@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:
|
||||
docker build -t cityofzion/neo-go --build-arg VERSION=${VERSION} .
|
||||
|
||||
build-linux:
|
||||
@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
|
||||
image: deps
|
||||
@echo "=> Building image"
|
||||
@docker build -t cityofzion/neo-go:latest --build-arg REPO=$(REPO) --build-arg VERSION=$(VERSION) .
|
||||
@docker build -t cityofzion/neo-go:$(VERSION) --build-arg REPO=$(REPO) --build-arg VERSION=$(VERSION) .
|
||||
|
||||
check-version:
|
||||
git fetch && (! git rev-list ${VERSION})
|
||||
|
@ -26,7 +30,8 @@ clean-cluster:
|
|||
@docker-compose rm -f
|
||||
|
||||
deps:
|
||||
@dep ensure
|
||||
@go mod tidy -v
|
||||
@go mod vendor
|
||||
|
||||
push-tag:
|
||||
git checkout ${BRANCH}
|
||||
|
|
Loading…
Reference in a new issue