Jonatan Antoni | 4b0ede3 | 2021-04-29 18:26:29 +0200 | [diff] [blame] | 1 | # Due to bandwidth limitation, we need to keep the base image into our |
| 2 | # Artifactory Docker Registry. Because we have more than one registry, |
| 3 | # we need to set during build time which Artifactory Docker Registry to use. |
| 4 | ARG DOCKER_REGISTRY |
| 5 | FROM ${DOCKER_REGISTRY}/ubuntu:focal |
| 6 | |
| 7 | # jenkins user needs to be present to work on CI |
| 8 | # User 1000 for Kubernetes |
| 9 | RUN useradd -u 1000 -U -m -c Jenkins jenkins |
| 10 | |
| 11 | # install packages from official Ubuntu repo |
| 12 | ENV DEBIAN_FRONTEND=noninteractive |
Jonatan Antoni | b5d07f0 | 2021-07-14 12:50:57 +0200 | [diff] [blame] | 13 | # hadolint ignore=DL3008 |
Jonatan Antoni | 4b0ede3 | 2021-04-29 18:26:29 +0200 | [diff] [blame] | 14 | RUN apt-get update && \ |
| 15 | apt-get install --no-install-recommends -y \ |
Jonatan Antoni | d12f5c2 | 2021-07-14 08:55:54 +0200 | [diff] [blame] | 16 | bc \ |
| 17 | build-essential \ |
| 18 | curl \ |
| 19 | dos2unix \ |
| 20 | git \ |
| 21 | lib32stdc++6 \ |
| 22 | mscgen \ |
| 23 | p7zip-full \ |
| 24 | python3 \ |
| 25 | python3-pip \ |
| 26 | tar \ |
| 27 | unzip \ |
| 28 | wget \ |
| 29 | libxml2-utils \ |
| 30 | zip && \ |
Jonatan Antoni | 4b0ede3 | 2021-04-29 18:26:29 +0200 | [diff] [blame] | 31 | apt-get autoremove -y && \ |
| 32 | apt-get autoclean -y && \ |
| 33 | rm -rf /var/lib/apt/lists/* |
| 34 | |
| 35 | # Create build ARGs for installer files & versions |
| 36 | ARG ARMCC=ArmCompiler-5.06u7-linux.sh |
| 37 | ARG ARMCLANG=ArmCompiler-6.16-linux-x86_64.sh |
| 38 | ARG ARMCLANGLTM=ArmCompiler-6.6.4-linux-x86_64.sh |
| 39 | ARG GCC=gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 |
| 40 | ARG DOXYGEN=doxygen_1.8.6-2_amd64.deb |
| 41 | ARG FASTMODELS=fvp-11.12-linux-x86_64.tar.gz |
| 42 | |
| 43 | # Including dependency folder |
| 44 | ARG DEPENDENCIESFOLDER=dependenciesFiles |
| 45 | ARG TOOLS_PATH=/opt |
| 46 | ARG INSTALLER_PATH=/tmp/dependenciesFiles |
| 47 | RUN mkdir -p ${INSTALLER_PATH} |
| 48 | COPY dependenciesFiles/ ${INSTALLER_PATH} |
| 49 | |
| 50 | # install & setup armcc |
| 51 | RUN ${INSTALLER_PATH}/${ARMCC} --i-agree-to-the-contained-eula --no-interactive -v -d ${TOOLS_PATH}/armcc |
| 52 | ENV PATH=${PATH}:${TOOLS_PATH}/armcc/bin |
| 53 | ENV CI_ARMCC5_TOOLCHAIN_ROOT=${TOOLS_PATH}/armclang/bin |
| 54 | |
| 55 | # install & setup armclang |
| 56 | RUN ${INSTALLER_PATH}/${ARMCLANG} --i-agree-to-the-contained-eula --no-interactive -v -d ${TOOLS_PATH}/armclang |
| 57 | ENV PATH=${PATH}:${TOOLS_PATH}/armclang/bin |
| 58 | ENV CI_ARMCC6_TOOLCHAIN_ROOT=${TOOLS_PATH}/armclang/bin |
| 59 | |
| 60 | # install & setup armclang ltm |
| 61 | RUN ${INSTALLER_PATH}/${ARMCLANGLTM} --i-agree-to-the-contained-eula --no-interactive -v -d ${TOOLS_PATH}/armclangltm |
| 62 | ENV CI_ARMCC6LTM_TOOLCHAIN_ROOT=${TOOLS_PATH}/armclangltm/bin |
| 63 | |
| 64 | # install & setup gcc |
| 65 | RUN mkdir -p ${TOOLS_PATH} |
| 66 | WORKDIR ${TOOLS_PATH} |
| 67 | RUN tar -xvf ${INSTALLER_PATH}/${GCC} |
| 68 | ENV PATH=${PATH}:${TOOLS_PATH}/gcc-arm-none-eabi-10-2020-q4-major/bin |
| 69 | ENV CI_GCC_TOOLCHAIN_ROOT=${TOOLS_PATH}/gcc-arm-none-eabi-10-2020-q4-major/bin |
| 70 | WORKDIR / |
| 71 | |
| 72 | # install fast models 11.12 |
| 73 | RUN mkdir -p ${TOOLS_PATH}/fvp/ |
| 74 | WORKDIR ${TOOLS_PATH}/fvp/ |
| 75 | RUN tar -xvf ${INSTALLER_PATH}/${FASTMODELS} |
| 76 | ENV PATH=${PATH}:${TOOLS_PATH}/fvp |
| 77 | WORKDIR / |
| 78 | |
| 79 | # install doxygen |
| 80 | RUN dpkg -i ${INSTALLER_PATH}/${DOXYGEN} |
| 81 | |
| 82 | # install PackChk |
| 83 | RUN cp ${INSTALLER_PATH}/PackChk /usr/local/bin/PackChk |
| 84 | RUN chmod +x /usr/local/bin/PackChk |
| 85 | |
| 86 | # install Python requirements |
| 87 | COPY requirements.txt ${INSTALLER_PATH}/ |
Jonatan Antoni | b5d07f0 | 2021-07-14 12:50:57 +0200 | [diff] [blame] | 88 | # hadolint ignore=DL3013 |
Jonatan Antoni | e54ebc4 | 2021-07-14 12:27:42 +0200 | [diff] [blame] | 89 | RUN python3 -m pip install -U --no-cache-dir pip && \ |
| 90 | python3 -m pip install -U --no-cache-dir -r ${INSTALLER_PATH}/requirements.txt |
Jonatan Antoni | 4b0ede3 | 2021-04-29 18:26:29 +0200 | [diff] [blame] | 91 | |
| 92 | # install buildtools |
| 93 | RUN python3 -m pip install --no-cache-dir -r ${INSTALLER_PATH}/buildtools/requirements.txt |
| 94 | RUN mv ${INSTALLER_PATH}/buildtools ${TOOLS_PATH} |
| 95 | COPY rtebuild /home/jenkins/.rtebuild |
| 96 | COPY rtebuild /root/.rtebuild |
| 97 | ENV PATH=${PATH}:${TOOLS_PATH}/buildtools |
| 98 | |
Jonatan Antoni | 4b0ede3 | 2021-04-29 18:26:29 +0200 | [diff] [blame] | 99 | # set ARMLMD_LICENSE_FILE for ARM compilers |
| 100 | ENV ARMLMD_LICENSE_FILE="7010@euhpc-lic-armlmd.euhpc.arm.com:7010@euhpc-lic03.euhpc.arm.com:7010@euhpc-lic05.euhpc.arm.com:7010@euhpc-lic07.euhpc.arm.com" |
| 101 | |
| 102 | # remove dependency folder |
| 103 | RUN rm -rf ${INSTALLER_PATH} |
| 104 | |
| 105 | CMD ["bash"] |