Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .github/workflows/monorepo-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ on:
- 'docker-entrypoint.sh'
- '.dockerignore'
- '.github/workflows/monorepo-docker.yml'
- 'solidity/.foundryrc'
- 'typescript/ccip-server/**'
# Dependency changes that could affect the Docker build
- 'yarn.lock'
Expand Down Expand Up @@ -99,6 +100,12 @@ jobs:
REGISTRY_VERSION=$(cat .registryrc)
echo "REGISTRY_VERSION=$REGISTRY_VERSION" >> $GITHUB_ENV

- name: Read Foundry version
shell: bash
run: |
FOUNDRY_VERSION=$(cat solidity/.foundryrc)
echo "FOUNDRY_VERSION=$FOUNDRY_VERSION" >> $GITHUB_ENV

- name: Determine platforms
id: determine-platforms
run: |
Expand All @@ -119,6 +126,7 @@ jobs:
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
FOUNDRY_VERSION=${{ env.FOUNDRY_VERSION }}
REGISTRY_COMMIT=${{ env.REGISTRY_VERSION }}
platforms: ${{ steps.determine-platforms.outputs.platforms }}

Expand Down
19 changes: 9 additions & 10 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
FROM node:20-slim
FROM node:20-alpine

WORKDIR /hyperlane-monorepo

RUN apt-get update && apt-get install -y --no-install-recommends \
git g++ make python3 python3-pip jq bash curl ca-certificates unzip \
&& rm -rf /var/lib/apt/lists/* \
&& yarn set version 4.5.1
RUN apk add --update --no-cache git g++ make py3-pip jq bash curl && \
yarn set version 4.5.1

# Install Foundry for solidity builds (early for layer caching)
COPY solidity/.foundryrc ./solidity/
RUN curl -L https://foundry.paradigm.xyz | bash
RUN /root/.foundry/bin/foundryup --install $(cat solidity/.foundryrc)
ENV PATH="/root/.foundry/bin:${PATH}"
# Install Foundry (Alpine binaries) - pinned version for reproducibility
ARG FOUNDRY_VERSION
ARG TARGETARCH
RUN set -o pipefail && \
ARCH=$([ "$TARGETARCH" = "arm64" ] && echo "arm64" || echo "amd64") && \
curl --fail -L "https://github.com/foundry-rs/foundry/releases/download/${FOUNDRY_VERSION}/foundry_${FOUNDRY_VERSION}_alpine_${ARCH}.tar.gz" | tar -xzC /usr/local/bin forge cast

# Copy package.json and friends
COPY package.json yarn.lock .yarnrc.yml ./
Expand Down
Loading