11#
22# Builds the toolshed/ubuntu-22.04 toolchain container.
33#
4- FROM ubuntu:22 .04 AS base
4+ FROM ubuntu:24 .04 AS base
55
66LABEL org.opencontainers.image.source=https://github.com/OpenCyphal/docker_toolchains
77LABEL org.opencontainers.image.description="Provides a consistent build and test environment for development, continuous-integration, and test automation of OpenCyphal C and C++ based projects."
@@ -25,48 +25,38 @@ FROM base AS provisioning
2525WORKDIR /tmp
2626ADD kitware-archive-latest.asc .
2727ADD pre-provision.sh ./pre-provision.sh
28+ ADD provision-repositories.sh ./provision-repositories.sh
29+ ADD provision-repositories-${TARGETARCH}.sh ./provision-repositories-${TARGETARCH}.sh
2830ADD provision.sh ./provision.sh
2931ADD provision-${TARGETARCH}.sh ./provision-${TARGETARCH}.sh
3032ADD post-provision.sh ./post-provision.sh
3133
3234RUN apt update
3335RUN ./pre-provision.sh
36+ RUN ./provision-repositories.sh
37+ RUN ./provision-repositories-${TARGETARCH}.sh
3438RUN apt update
3539RUN ./provision.sh
3640RUN ./provision-${TARGETARCH}.sh
3741RUN ./post-provision.sh
3842
39- # INSTALL THE PATH FOR INTERATIVE SESSIONS
43+ # INSTALL THE PATH FOR INTERACTIVE SESSIONS
4044RUN echo "export PATH=$PATH" >> ~/.bashrc
4145
4246# LEAVE THE WORKDIR AS /repo
4347WORKDIR /repo
4448
45- # +---------------------------------------------------------------------------+
46- # | NVM/nodejs
47- # +---------------------------------------------------------------------------+
48- FROM provisioning AS node
49-
50- WORKDIR /tmp
51- ADD nvm-install.sh ./nvm-install.sh
52- RUN cat ./nvm-install.sh | bash
53- ENV NVM_DIR="~/.nvm"
54- RUN . ~/.nvm/nvm.sh && nvm install v20
55-
56- # LEAVE THE WORKDIR AS /repo
57- WORKDIR /repo
58-
5949# +---------------------------------------------------------------------------+
6050# | INSTALL PYTHON STUFF
6151# +---------------------------------------------------------------------------+
62- FROM node AS python
52+ FROM provisioning AS python
6353WORKDIR /tmp
6454
65- RUN pip3 install virtualenv
66- RUN pip3 install tox
67- RUN pip3 install nox
68- RUN pip3 install gcovr
69- RUN pip3 list
55+ RUN apt-get -y install pipx
56+ RUN echo "export PATH=/root/.local/bin:$PATH" >> ~/.bashrc
57+ RUN pipx install tox
58+ RUN pipx install nox
59+ RUN pipx install gcovr
7060
7161# LEAVE THE WORKDIR AS /repo
7262WORKDIR /repo
@@ -80,7 +70,9 @@ WORKDIR /tmp
8070ADD llvm-install.sh ./llvm-install.sh
8171ADD llvm-select.sh ./llvm-select.sh
8272RUN ./llvm-install.sh 18 all
83- RUN ./llvm-select.sh 18
73+ RUN ./llvm-select.sh 18 18
74+ RUN ./llvm-install.sh 19 all
75+ RUN ./llvm-select.sh 19 99
8476
8577# LEAVE THE WORKDIR AS /repo
8678WORKDIR /repo
@@ -94,7 +86,7 @@ RUN mkdir doxygen-Release
9486RUN mkdir doxygen-Release/build
9587COPY cached-download.sh .
9688
97- ARG DOXYGEN_VERSION=1_10_0
89+ ARG DOXYGEN_VERSION=1_13_2
9890
9991COPY doxygen-Release_${DOXYGEN_VERSION}.sha512.txt .
10092RUN --mount=type=cache,target=/doxygen-download \
@@ -126,8 +118,11 @@ FROM doxygen AS gcc-select
126118WORKDIR /tmp
127119
128120ADD gcc-select.sh ./gcc-select.sh
129- RUN ./gcc-select.sh 11 1
130- RUN ./gcc-select.sh 12 99
121+ RUN ./gcc-select.sh 7 7
122+ RUN ./gcc-select.sh 10 10
123+ RUN ./gcc-select.sh 11 11
124+ RUN ./gcc-select.sh 12 12
125+ RUN ./gcc-select.sh 13 99
131126RUN update-alternatives --display gcc
132127
133128# +---------------------------------------------------------------------------+
0 commit comments