11# syntax=docker.io/docker/dockerfile:1
2- ARG APT_UPDATE_SNAPSHOT=20260113T030400Z
2+ ARG APT_UPDATE_SNAPSHOT=20260623T000000Z
33ARG MACHINE_GUEST_TOOLS_VERSION=0.17.2
4- ARG MACHINE_GUEST_TOOLS_SHA256SUM=c077573dbcf0cdc146adf14b480bfe454ca63aa4d3e8408c5487f550a5b77a41
4+ ARG MACHINE_GUEST_TOOLS_SHA=sha256:4cabfd5cfd932367a5be35fa6c18a541f9044f04c48ffcb38bea3cebf88cc6a7
55ARG MACHINE_ASSET_TOOLS_VERSION=0.1.0-alpha.8
6- ARG MACHINE_ASSET_TOOLS_TAR=https://github.com/Mugen-Builders/machine-asset-tools/releases/download/v${MACHINE_ASSET_TOOLS_VERSION}/machine-asset-tools_glibc_riscv64_v${MACHINE_ASSET_TOOLS_VERSION}.tar.gz
7- ARG MACHINE_ASSET_TOOLS_TAR_CHECKSUM=sha256:639fc0915b5551eab8c2e91b3216e248cd94e546eca9dd50ba230a431e9c4e85
6+ # ARG MACHINE_ASSET_TOOLS_TAR=https://github.com/Mugen-Builders/machine-asset-tools/releases/download/v${MACHINE_ASSET_TOOLS_VERSION}/machine-asset-tools_glibc_riscv64_v${MACHINE_ASSET_TOOLS_VERSION}.tar.gz
7+ # ARG MACHINE_ASSET_TOOLS_TAR_CHECKSUM=sha256:f8ef6e1ca785c30059e58d18a5a93df2098f9d73de4b4489f477475c74f96029
88ARG MACHINE_ASSET_TOOLS_DEV_TAR=https://github.com/Mugen-Builders/machine-asset-tools/releases/download/v${MACHINE_ASSET_TOOLS_VERSION}/machine-asset-tools_glibc_riscv64_dev_v${MACHINE_ASSET_TOOLS_VERSION}.tar.gz
9- ARG MACHINE_ASSET_TOOLS_DEV_TAR_CHECKSUM=sha256:8b3d55ceb148bd843e1210c3be5545fb0e9074fd5b02ecc32cf8bbddc32790f5
9+ ARG MACHINE_ASSET_TOOLS_DEV_TAR_CHECKSUM=sha256:5a1f3730add17ee29298cc7dfa81362bba6c0adef0581c130ed6427e40d8ed4d
1010
1111ARG APP_DIR=.
1212ARG WALLET_APP_CONFIG=config.py
3030
3131# Install guest tools
3232ARG MACHINE_GUEST_TOOLS_VERSION
33- ARG MACHINE_GUEST_TOOLS_SHA256SUM
34- ADD --checksum=sha256:${MACHINE_GUEST_TOOLS_SHA256SUM} \
35- https://github.com/cartesi/machine-guest-tools/releases/download/v${MACHINE_GUEST_TOOLS_VERSION}/machine-guest-tools_riscv64.deb \
36- /tmp/machine-guest-tools_riscv64.deb
37-
38- ARG DEBIAN_FRONTEND=noninteractive
39- RUN <<EOF
40- set -e
41- apt-get install -y --no-install-recommends \
42- busybox-static \
43- /tmp/machine-guest-tools_riscv64.deb
44-
45- rm /tmp/machine-guest-tools_riscv64.deb
46- EOF
33+ ADD https://github.com/cartesi/machine-guest-tools/releases/download/v${MACHINE_GUEST_TOOLS_VERSION}/machine-guest-tools_riscv64.deb /tmp/
34+ RUN apt-get install -y --no-install-recommends /tmp/machine-guest-tools_riscv64.deb
35+ RUN rm /tmp/machine-guest-tools_riscv64.deb
4736
4837# ARG MACHINE_ASSET_TOOLS_TAR
4938# ARG MACHINE_ASSET_TOOLS_TAR_CHECKSUM
7766
7867FROM base AS builder
7968
69+ # Install g++ 14
70+ RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
71+ g++-14 build-essential
72+
8073RUN <<EOF
8174set -e
82- apt-get install -y --no-install-recommends \
83- build-essential gcc libc6-dev
75+ apt-get remove -y g++-13
76+ update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-14 100
77+ update-alternatives --config g++
8478EOF
8579
80+ # Install guest tools
81+ ARG MACHINE_GUEST_TOOLS_VERSION
82+ ARG MACHINE_GUEST_TOOLS_SHA
83+ ADD --checksum=${MACHINE_GUEST_TOOLS_SHA} \
84+ https://github.com/cartesi/machine-guest-tools/releases/download/v${MACHINE_GUEST_TOOLS_VERSION}/machine-guest-tools_riscv64.tar.gz \
85+ /tmp/machine-guest-tools_riscv64.tar.gz
86+
87+ ARG DEBIAN_FRONTEND=noninteractive
88+ RUN tar zxvf /tmp/machine-guest-tools_riscv64.tar.gz -C /
89+
8690ARG MACHINE_ASSET_TOOLS_DEV_TAR
8791ARG MACHINE_ASSET_TOOLS_DEV_TAR_CHECKSUM
8892ADD --checksum=${MACHINE_ASSET_TOOLS_DEV_TAR_CHECKSUM} ${MACHINE_ASSET_TOOLS_DEV_TAR} /tmp/cma.tar.gz
@@ -157,8 +161,6 @@ find /usr/local/lib -type d -name __pycache__ -exec rm -r {} +
157161find . -type d -name __pycache__ -exec rm -r {} +
158162rm -rf /var/lib/apt/lists/* /var/log/* /var/cache/* /tmp/* /opt/install
159163EOF
160- # ## Rootfs
161- FROM ${INSTALL_STEP} AS rootfs
162164
163165# ## Rootfs
164166FROM ${INSTALL_STEP} AS rootfs
@@ -170,20 +172,5 @@ ARG WALLET_APP_CONFIG
170172COPY ${APP_DIR}/app.py .
171173COPY ${APP_DIR}/${WALLET_APP_CONFIG} .
172174
173- # ## State
174- FROM --platform=linux/riscv64 rootfs AS state-builder
175-
176- COPY --from=app-scratch / /opt/cartesi/app
177-
178- WORKDIR /opt/cartesi/app/data
179-
180- ARG STATE_FILESIZE
181-
182- RUN /usr/local/bin/python3 /opt/cartesi/app/app.py /opt/cartesi/app/data/state.bin 1
183-
184- FROM --platform=linux/riscv64 scratch AS state
185-
186- COPY --from=state-builder /opt/cartesi/app/data/state.bin /
187-
188175# ## App
189176FROM --platform=linux/riscv64 app-scratch AS app
0 commit comments