diff --git a/.github/workflows/build-and-install.yml b/.github/workflows/build-and-install.yml index 36093f8..3f440fb 100644 --- a/.github/workflows/build-and-install.yml +++ b/.github/workflows/build-and-install.yml @@ -43,6 +43,9 @@ jobs: run: | git clone https://github.com/cosmos/gaia cd gaia + git checkout v19.2.0 + rm ./Dockerfile + cp ../Dockerfile.gaia ./Dockerfile docker build -t komodoofficial/gaiad:latest -f ./Dockerfile . docker push komodoofficial/gaiad:latest @@ -65,7 +68,7 @@ jobs: git clone https://github.com/cosmos/relayer cd relayer rm ./Dockerfile - cp ../Dockerfile.ibc ./Dockerfile + cp ../Dockerfile.rly ./Dockerfile docker build -t komodoofficial/ibc-relayer:latest -f ./Dockerfile . docker push komodoofficial/ibc-relayer:latest diff --git a/Dockerfile.gaia b/Dockerfile.gaia new file mode 100644 index 0000000..3c799c9 --- /dev/null +++ b/Dockerfile.gaia @@ -0,0 +1,32 @@ +ARG IMG_TAG=latest + +# Compile the gaiad binary +FROM golang:1.22-alpine AS gaiad-builder +WORKDIR /src/app/ +ENV PACKAGES="curl make git libc-dev bash file gcc linux-headers eudev-dev python3" +RUN apk add --no-cache $PACKAGES + +# See https://github.com/CosmWasm/wasmvm/releases +ARG WASMVM_VERSION=v2.0.0 +ADD https://github.com/CosmWasm/wasmvm/releases/download/${WASMVM_VERSION}/libwasmvm_muslc.aarch64.a /lib/libwasmvm_muslc.aarch64.a +ADD https://github.com/CosmWasm/wasmvm/releases/download/${WASMVM_VERSION}/libwasmvm_muslc.x86_64.a /lib/libwasmvm_muslc.x86_64.a +RUN sha256sum /lib/libwasmvm_muslc.aarch64.a | grep 2687afbdae1bc6c7c8b05ae20dfb8ffc7ddc5b4e056697d0f37853dfe294e913 +RUN sha256sum /lib/libwasmvm_muslc.x86_64.a | grep 465e3a088e96fd009a11bfd234c69fb8a0556967677e54511c084f815cf9ce63 +RUN cp "/lib/libwasmvm_muslc.$(uname -m).a" /lib/libwasmvm_muslc.a + +COPY go.mod go.sum* ./ +RUN go mod download + +COPY . . +RUN LEDGER_ENABLED=true LINK_STATICALLY=true BUILD_TAGS=muslc make build +RUN echo "Ensuring binary is statically linked ..." \ + && file /src/app/build/gaiad | grep "statically linked" + +FROM alpine:$IMG_TAG +RUN apk add --no-cache build-base +ARG IMG_TAG +COPY --from=gaiad-builder /src/app/build/gaiad /usr/local/bin/ +EXPOSE 26656 26657 1317 9090 +USER 0 + +ENTRYPOINT ["gaiad", "start"] diff --git a/Dockerfile.ibc b/Dockerfile.rly similarity index 90% rename from Dockerfile.ibc rename to Dockerfile.rly index 2f7561e..ed1550f 100644 --- a/Dockerfile.ibc +++ b/Dockerfile.rly @@ -24,7 +24,6 @@ RUN if [ -d "/go/bin/linux_${TARGETARCH}" ]; then mv /go/bin/linux_${TARGETARCH} # Use minimal busybox from infra-toolkit image for final scratch image FROM ghcr.io/strangelove-ventures/infra-toolkit:v0.0.6 AS busybox-min -RUN addgroup --gid 1000 -S relayer && adduser --uid 100 -S relayer -G relayer # Use ln and rm from full featured busybox for assembling final image FROM busybox:1.34.1-musl AS busybox-full @@ -62,10 +61,6 @@ COPY --from=build-env /bin/rly /bin # Install trusted CA certificates COPY --from=busybox-min /etc/ssl/cert.pem /etc/ssl/cert.pem -# Install relayer user -COPY --from=busybox-min /etc/passwd /etc/passwd -COPY --from=busybox-min --chown=100:1000 /home/relayer /home/relayer - -WORKDIR /home/relayer +USER 0 ENTRYPOINT ["rly", "start"]