This change set introduces support for building gaia with gitian on the following GOOS/GOARCH pairs: - darwin/386 - darwin/amd64 - linux/386 - linux/amd64 - linux/arm - linux/arm64 - windows/386 - windows/amd64 cmd/gaia/contrib/gitian-descriptors/ contains gitian descriptor files. cmd/gaia/contrib/gitian-keys/ contains: - a keys.txt file that is meant to list core developers and gitian builders PGP keys. - README.me to provide instructions on how to import the keys into one's personal GPG keyring. The gosum utility is removed, so is the go.sum hashsum bit from gaiacli/gaiad version string. It was meant to be a provisional mitigation to the lack of a reproducible build process. GOBIN is removed from all Makefiles. When GOBIN is set, go refuses to cross-compiles binaries for foreign architectures. export GOBIN=$GOPATH/bin is unnecessary anyway as by default go install places built binaries in $GOPATH/bin. Developers are required to update their enviornment files and replace $GOBIN with $GOPATH/bin in PATH. circleci configuration file is amended accordingly. Closes: #4027 Closes: #4280
34 lines
1.0 KiB
Docker
34 lines
1.0 KiB
Docker
# Simple usage with a mounted data directory:
|
|
# > docker build -t gaia .
|
|
# > docker run -it -p 46657:46657 -p 46656:46656 -v ~/.gaiad:/root/.gaiad -v ~/.gaiacli:/root/.gaiacli gaia gaiad init
|
|
# > docker run -it -p 46657:46657 -p 46656:46656 -v ~/.gaiad:/root/.gaiad -v ~/.gaiacli:/root/.gaiacli gaia gaiad start
|
|
FROM golang:alpine AS build-env
|
|
|
|
# Set up dependencies
|
|
ENV PACKAGES curl make git libc-dev bash gcc linux-headers eudev-dev python
|
|
|
|
# Set working directory for the build
|
|
WORKDIR /go/src/github.com/cosmos/cosmos-sdk
|
|
|
|
# Add source files
|
|
COPY . .
|
|
|
|
# Install minimum necessary dependencies, build Cosmos SDK, remove packages
|
|
RUN apk add --no-cache $PACKAGES && \
|
|
make tools && \
|
|
make install
|
|
|
|
# Final image
|
|
FROM alpine:edge
|
|
|
|
# Install ca-certificates
|
|
RUN apk add --update ca-certificates
|
|
WORKDIR /root
|
|
|
|
# Copy over binaries from the build-env
|
|
COPY --from=build-env /go/bin/gaiad /usr/bin/gaiad
|
|
COPY --from=build-env /go/bin/gaiacli /usr/bin/gaiacli
|
|
|
|
# Run gaiad by default, omit entrypoint to ease using container with gaiacli
|
|
CMD ["gaiad"]
|