@@ -38,6 +38,7 @@ FROM debian:stable-slim as foundry-builder
38
38
# DOCKER_BUILDKIT=1 docker build . -t ...
39
39
ARG TARGETARCH
40
40
ARG MAXIMUM_THREADS=2
41
+ ARG CARGO_INCREMENTAL=0
41
42
42
43
RUN export DEBIAN_FRONTEND=noninteractive && \
43
44
apt update && \
@@ -54,6 +55,10 @@ RUN useradd --create-home -s /bin/bash xmtp
54
55
RUN usermod -a -G sudo xmtp
55
56
RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
56
57
58
+ ENV FOUNDRY_ROOT=/usr/local/foundry
59
+ ENV FOUNDRY_BIN=${FOUNDRY_ROOT}/bin
60
+ RUN mkdir -p ${FOUNDRY_BIN}
61
+ RUN chown -R xmtp:xmtp ${FOUNDRY_ROOT}
57
62
58
63
WORKDIR /rustup
59
64
# # Rust
@@ -69,24 +74,21 @@ WORKDIR /build
69
74
70
75
# latest https://github.com/foundry-rs/foundry
71
76
ENV PATH=$PATH:~xmtp/.cargo/bin
72
- RUN git clone https://github.com/foundry-rs/foundry
73
77
74
78
WORKDIR /build/foundry
75
- RUN git pull && LATEST_TAG=$(git describe --tags --abbrev=0) || LATEST_TAG=master && \
76
- echo "building tag ${LATEST_TAG}" && \
77
- git -c advice.detachedHead=false checkout ${LATEST_TAG} && \
78
- . $HOME/.cargo/env && \
79
+ ENV CARGO_INCREMENTAL=${CARGO_INCREMENTAL:-1}
80
+ RUN . $HOME/.cargo/env && \
79
81
THREAD_NUMBER=$(cat /proc/cpuinfo | grep -c ^processor) && \
80
82
MAX_THREADS=$(( THREAD_NUMBER > ${MAXIMUM_THREADS} ? ${MAXIMUM_THREADS} : THREAD_NUMBER )) && \
81
83
echo "building with ${MAX_THREADS} threads" && \
82
- cargo build --jobs ${MAX_THREADS} --release && \
83
- objdump -j .comment -s target/release/forge && \
84
- strip target/release/ forge && \
85
- strip target/release/cast && \
86
- strip target/release/anvil && \
87
- strip target/release/chisel
88
-
89
- RUN git rev-parse HEAD > /build/foundry_commit_sha256
84
+ cargo install --git https://github.com/foundry-rs/foundry --tag nightly \
85
+ --jobs ${MAX_THREADS} --root ${FOUNDRY_ROOT} --profile local \
86
+ --locked forge cast chisel anvil && \
87
+ objdump -j .comment -s ${FOUNDRY_BIN}/forge && \
88
+ strip ${FOUNDRY_BIN}/forge && \
89
+ strip ${FOUNDRY_BIN}/cast && \
90
+ strip ${FOUNDRY_BIN}/anvil && \
91
+ strip ${FOUNDRY_BIN}/chisel
90
92
91
93
FROM debian:stable-slim as node18-slim
92
94
@@ -148,12 +150,11 @@ COPY --from=go-builder /usr/local/go /usr/local/go
148
150
ARG ETH_VERSION=1.13.12
149
151
COPY --from=go-builder /go-ethereum/go-ethereum-${ETH_VERSION}/build/bin /usr/local/bin
150
152
153
+ ENV FOUNDRY_ROOT=/usr/local/foundry
151
154
# Foundry
152
- COPY --from=foundry-builder /build/foundry_commit_sha256 /usr/local/etc/foundry_commit_sha256
153
- COPY --from=foundry-builder /build/foundry/target/release/forge /usr/local/bin/forge
154
- COPY --from=foundry-builder /build/foundry/target/release/cast /usr/local/bin/cast
155
- COPY --from=foundry-builder /build/foundry/target/release/anvil /usr/local/bin/anvil
156
- COPY --from=foundry-builder /build/foundry/target/release/chisel /usr/local/bin/chisel
155
+ COPY --from=foundry-builder ${FOUNDRY_ROOT} ${FOUNDRY_ROOT}
156
+
157
+ ENV PATH=${FOUNDRY_ROOT}/bin:${PATH}
157
158
158
159
LABEL org.label-schema.build-date=$BUILD_DATE \
159
160
org.label-schema.name="foundry" \
0 commit comments