mirror of
https://github.com/osmosis-labs/osmosis.git
synced 2026-01-11 10:03:59 +00:00
* chore: bump go version * chore: bump Dockerfile versions * chore: add CHANGELOG.md * chore: update linter to fix panic * chore: add ignores to linter * chore: add ignores to linter
91 lines
2.6 KiB
Docker
91 lines
2.6 KiB
Docker
# syntax=docker/dockerfile:1
|
|
|
|
ARG GO_VERSION="1.23"
|
|
ARG RUNNER_IMAGE="gcr.io/distroless/static-debian11"
|
|
ARG BUILD_TAGS="netgo,ledger,muslc"
|
|
|
|
ARG COSMOVISOR_VERSION="v1.5.0"
|
|
|
|
# --------------------------------------------------------
|
|
# Builder
|
|
# --------------------------------------------------------
|
|
|
|
FROM golang:${GO_VERSION}-alpine3.20 as builder
|
|
|
|
ARG GIT_VERSION
|
|
ARG GIT_COMMIT
|
|
ARG BUILD_TAGS
|
|
ARG COSMOVISOR_VERSION
|
|
|
|
RUN apk add --no-cache \
|
|
ca-certificates \
|
|
build-base \
|
|
linux-headers \
|
|
binutils-gold
|
|
|
|
# Download go dependencies
|
|
WORKDIR /osmosis
|
|
COPY go.mod go.sum ./
|
|
RUN --mount=type=cache,target=/root/.cache/go-build \
|
|
--mount=type=cache,target=/root/go/pkg/mod \
|
|
go mod download
|
|
|
|
# Cosmwasm - Download correct libwasmvm version
|
|
RUN ARCH=$(uname -m) && WASMVM_VERSION=$(go list -m github.com/CosmWasm/wasmvm/v2 | sed 's/.* //') && \
|
|
wget https://github.com/CosmWasm/wasmvm/releases/download/$WASMVM_VERSION/libwasmvm_muslc.$ARCH.a \
|
|
-O /lib/libwasmvm_muslc.$ARCH.a && \
|
|
# verify checksum
|
|
wget https://github.com/CosmWasm/wasmvm/releases/download/$WASMVM_VERSION/checksums.txt -O /tmp/checksums.txt && \
|
|
sha256sum /lib/libwasmvm_muslc.$ARCH.a | grep $(cat /tmp/checksums.txt | grep libwasmvm_muslc.$ARCH | cut -d ' ' -f 1)
|
|
|
|
# Copy the remaining files
|
|
COPY . .
|
|
|
|
# Build osmosisd binary
|
|
RUN --mount=type=cache,target=/root/.cache/go-build \
|
|
--mount=type=cache,target=/root/go/pkg/mod \
|
|
GOWORK=off go build \
|
|
-mod=readonly \
|
|
-tags "netgo,ledger,muslc" \
|
|
-ldflags \
|
|
"-X github.com/cosmos/cosmos-sdk/version.Name="osmosis" \
|
|
-X github.com/cosmos/cosmos-sdk/version.AppName="osmosisd" \
|
|
-X github.com/cosmos/cosmos-sdk/version.Version=${GIT_VERSION} \
|
|
-X github.com/cosmos/cosmos-sdk/version.Commit=${GIT_COMMIT} \
|
|
-X github.com/cosmos/cosmos-sdk/version.BuildTags=${BUILD_TAGS} \
|
|
-w -s -linkmode=external -extldflags '-Wl,-z,muldefs -static'" \
|
|
-trimpath \
|
|
-o /osmosis/build/osmosisd \
|
|
/osmosis/cmd/osmosisd/main.go
|
|
|
|
# Download cosmovisor
|
|
RUN go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@${COSMOVISOR_VERSION}
|
|
|
|
# --------------------------------------------------------
|
|
# Cosmovisor runner
|
|
# --------------------------------------------------------
|
|
|
|
FROM ${RUNNER_IMAGE}
|
|
|
|
COPY --from=builder /osmosis/build/osmosisd /bin/osmosisd
|
|
COPY --from=builder /go/bin/cosmovisor /bin/cosmovisor
|
|
|
|
ENV HOME=/osmosis
|
|
|
|
ENV DAEMON_NAME=osmosisd
|
|
ENV DAEMON_HOME=${HOME}/.osmosisd
|
|
ENV DAEMON_ALLOW_DOWNLOAD_BINARIES=true
|
|
ENV DAEMON_RESTART_AFTER_UPGRADE=true
|
|
ENV DAEMON_LOG_BUFFER_SIZE=512
|
|
ENV UNSAFE_SKIP_BACKUP=true
|
|
|
|
WORKDIR $HOME
|
|
|
|
EXPOSE 26656
|
|
EXPOSE 26657
|
|
EXPOSE 1317
|
|
|
|
ENTRYPOINT ["cosmovisor"]
|
|
|
|
|