dockerfile 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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. # jenkins user needs to be present to work on CI
  7. # User 1000 for Kubernetes
  8. RUN useradd -u 1000 -U -m -c Jenkins jenkins
  9. # install packages from official Ubuntu repo
  10. ENV DEBIAN_FRONTEND=noninteractive
  11. RUN apt-get update && \
  12. apt-get install --no-install-recommends -y \
  13. bc=1.07.1-2build1 \
  14. build-essential=12.8ubuntu1.1 \
  15. curl=7.68.0-1ubuntu2.5 \
  16. dos2unix=7.4.0-2 \
  17. git=1:2.25.1-1ubuntu3.1 \
  18. lib32stdc++6=10.2.0-5ubuntu1~20.04 \
  19. mscgen=0.20-12 \
  20. p7zip-full=16.02+dfsg-7build1 \
  21. python3=3.8.2-0ubuntu2 \
  22. python3-pip=20.0.2-5ubuntu1.3 \
  23. tar=1.30+dfsg-7ubuntu0.20.04.1 \
  24. unzip=6.0-25ubuntu1 \
  25. wget=1.20.3-1ubuntu1 \
  26. libxml2-utils=2.9.10+dfsg-5 \
  27. zip=3.0-11build1 && \
  28. apt-get autoremove -y && \
  29. apt-get autoclean -y && \
  30. rm -rf /var/lib/apt/lists/*
  31. # Create build ARGs for installer files & versions
  32. ARG ARMCC=ArmCompiler-5.06u7-linux.sh
  33. ARG ARMCLANG=ArmCompiler-6.16-linux-x86_64.sh
  34. ARG ARMCLANGLTM=ArmCompiler-6.6.4-linux-x86_64.sh
  35. ARG GCC=gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
  36. ARG DOXYGEN=doxygen_1.8.6-2_amd64.deb
  37. ARG FASTMODELS=fvp-11.12-linux-x86_64.tar.gz
  38. # Including dependency folder
  39. ARG DEPENDENCIESFOLDER=dependenciesFiles
  40. ARG TOOLS_PATH=/opt
  41. ARG INSTALLER_PATH=/tmp/dependenciesFiles
  42. RUN mkdir -p ${INSTALLER_PATH}
  43. COPY dependenciesFiles/ ${INSTALLER_PATH}
  44. # install & setup armcc
  45. RUN ${INSTALLER_PATH}/${ARMCC} --i-agree-to-the-contained-eula --no-interactive -v -d ${TOOLS_PATH}/armcc
  46. ENV PATH=${PATH}:${TOOLS_PATH}/armcc/bin
  47. ENV CI_ARMCC5_TOOLCHAIN_ROOT=${TOOLS_PATH}/armclang/bin
  48. # install & setup armclang
  49. RUN ${INSTALLER_PATH}/${ARMCLANG} --i-agree-to-the-contained-eula --no-interactive -v -d ${TOOLS_PATH}/armclang
  50. ENV PATH=${PATH}:${TOOLS_PATH}/armclang/bin
  51. ENV CI_ARMCC6_TOOLCHAIN_ROOT=${TOOLS_PATH}/armclang/bin
  52. # install & setup armclang ltm
  53. RUN ${INSTALLER_PATH}/${ARMCLANGLTM} --i-agree-to-the-contained-eula --no-interactive -v -d ${TOOLS_PATH}/armclangltm
  54. ENV CI_ARMCC6LTM_TOOLCHAIN_ROOT=${TOOLS_PATH}/armclangltm/bin
  55. # install & setup gcc
  56. RUN mkdir -p ${TOOLS_PATH}
  57. WORKDIR ${TOOLS_PATH}
  58. RUN tar -xvf ${INSTALLER_PATH}/${GCC}
  59. ENV PATH=${PATH}:${TOOLS_PATH}/gcc-arm-none-eabi-10-2020-q4-major/bin
  60. ENV CI_GCC_TOOLCHAIN_ROOT=${TOOLS_PATH}/gcc-arm-none-eabi-10-2020-q4-major/bin
  61. WORKDIR /
  62. # install fast models 11.12
  63. RUN mkdir -p ${TOOLS_PATH}/fvp/
  64. WORKDIR ${TOOLS_PATH}/fvp/
  65. RUN tar -xvf ${INSTALLER_PATH}/${FASTMODELS}
  66. ENV PATH=${PATH}:${TOOLS_PATH}/fvp
  67. WORKDIR /
  68. # install doxygen
  69. RUN dpkg -i ${INSTALLER_PATH}/${DOXYGEN}
  70. # install PackChk
  71. RUN cp ${INSTALLER_PATH}/PackChk /usr/local/bin/PackChk
  72. RUN chmod +x /usr/local/bin/PackChk
  73. # install Python requirements
  74. COPY requirements.txt ${INSTALLER_PATH}/
  75. RUN python3 -m pip install --no-cache-dir -r ${INSTALLER_PATH}/requirements.txt
  76. # install buildtools
  77. RUN python3 -m pip install --no-cache-dir -r ${INSTALLER_PATH}/buildtools/requirements.txt
  78. RUN mv ${INSTALLER_PATH}/buildtools ${TOOLS_PATH}
  79. COPY rtebuild /home/jenkins/.rtebuild
  80. COPY rtebuild /root/.rtebuild
  81. ENV PATH=${PATH}:${TOOLS_PATH}/buildtools
  82. # install python-matrix-runner
  83. # hadolint disable=DL3013
  84. RUN python3 -m pip install ${INSTALLER_PATH}/python-matrix-runner
  85. # set ARMLMD_LICENSE_FILE for ARM compilers
  86. 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"
  87. # remove dependency folder
  88. RUN rm -rf ${INSTALLER_PATH}
  89. CMD ["bash"]