1
1
# syntax=docker/dockerfile:1.4
2
2
3
3
# ##### Foundry builder
4
- FROM rust:alpine3.19 as foundry-build-environment
4
+ ARG FOUNDRY_BUILDER_ALPINE_VERSION=3.19
5
+ ARG FOUNDRY_BUILDER_RUST_VERSION=1.81
6
+ ARG NODE_VERSION=20
7
+ ARG DEBIAN_VERSION=bookworm
8
+ FROM rust:${FOUNDRY_BUILDER_RUST_VERSION}-alpine${FOUNDRY_BUILDER_ALPINE_VERSION} as foundry-build-environment
5
9
6
- ARG TARGETARCH
7
10
WORKDIR /opt
8
- ARG FOUNDRY_COMMIT=a17869a6dcce7ce3765c5ed521d40ddb572de9f0
9
11
10
- RUN apk add clang lld curl build-base linux-headers git \
12
+ ARG FOUNDRY_COMMIT=a17869a6dcce7ce3765c5ed521d40ddb572de9f0
13
+ RUN apk add --no-cache clang lld curl build-base linux-headers git \
11
14
&& mkdir foundry \
12
15
&& cd foundry \
13
16
&& git init \
14
17
&& git remote add origin https://github.com/foundry-rs/foundry.git \
15
18
&& git fetch --depth 1 origin "${FOUNDRY_COMMIT}" \
16
19
&& git checkout FETCH_HEAD
17
20
21
+ ARG TARGETARCH
18
22
RUN [[ "$TARGETARCH" = "arm64" ]] && echo "export CFLAGS=-mno-outline-atomics" >> $HOME/.profile || touch $HOME/.profile
19
23
20
24
WORKDIR /opt/foundry
21
25
22
- # # see <https://github.com/foundry-rs/foundry/issues/7925>
23
- # RUN git update-index --force-write-index
24
-
25
26
RUN --mount=type=cache,target=/root/.cargo/registry --mount=type=cache,target=/root/.cargo/git --mount=type=cache,target=/opt/foundry/target \
26
27
source $HOME/.profile && cargo build --release --features foundry-cast/aws-kms,forge/aws-kms \
27
28
&& mkdir out \
@@ -34,8 +35,8 @@ RUN --mount=type=cache,target=/root/.cargo/registry --mount=type=cache,target=/r
34
35
&& strip out/chisel \
35
36
&& strip out/anvil;
36
37
37
- # ##### SPlit bas eimage for compatibly parallelizable builds
38
- FROM node:20-bookworm as base
38
+ # ##### Split base image for compatibly parallelizable builds
39
+ FROM node:${NODE_VERSION}-${DEBIAN_VERSION} as base
39
40
40
41
RUN apt-get update \
41
42
&& apt-get install -y \
@@ -45,7 +46,8 @@ RUN apt-get update \
45
46
&& sed -i '/en_US.UTF-8/s/^# //' /etc/locale.gen \
46
47
&& locale-gen
47
48
48
- ENV YARN_VERSION 1.22.22
49
+ ARG YARN_VERSION=1.22.22
50
+ ENV YARN_VERSION ${YARN_VERSION}
49
51
# replace base image yarn 1.19
50
52
# checksums and sigs for 1.22 not available as of now...
51
53
# https://github.com/nodejs/docker-node/blob/07bd7414c9eeb7a134951122e1105e8c849f770e/Dockerfile-debian.template
@@ -87,9 +89,10 @@ RUN (mkdir /home/node/.rbenv \
87
89
) \
88
90
&& echo 'eval "$(/home/node/.rbenv/bin/rbenv init -)"' >> /home/node/.bashrc
89
91
92
+ ARG BUNDLER_VERSION=2.5.8
90
93
RUN bash -c 'eval "$(/home/node/.rbenv/bin/rbenv init -)" \
91
94
&& rbenv install \
92
- && gem install bundler -v 2.5.8 \
95
+ && gem install bundler -v ${BUNDLER_VERSION} \
93
96
&& gem install bigdecimal cocoapods \
94
97
&& bundle install'
95
98
0 commit comments