dockerfile 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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. # hadolint ignore=DL3008
  12. RUN apt-get update && \
  13. apt-get install --no-install-recommends -y \
  14. bc \
  15. build-essential \
  16. curl \
  17. dos2unix \
  18. git \
  19. lib32stdc++6 \
  20. mscgen \
  21. p7zip-full \
  22. python3 \
  23. python3-pip \
  24. tar \
  25. unzip \
  26. wget \
  27. libxml2-utils \
  28. zip && \
  29. apt-get autoremove -y && \
  30. apt-get autoclean -y && \
  31. rm -rf /var/lib/apt/lists/*
  32. # Create build ARGs for installer files & versions
  33. ARG ARMCC=ArmCompiler-5.06u7-linux.sh
  34. ARG ARMCLANG=ArmCompiler-6.16-linux-x86_64.sh
  35. ARG ARMCLANGLTM=ArmCompiler-6.6.4-linux-x86_64.sh
  36. ARG GCC=gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
  37. ARG DOXYGEN=doxygen_1.8.6-2_amd64.deb
  38. ARG FASTMODELS=fvp-11.12-linux-x86_64.tar.gz
  39. # Including dependency folder
  40. ARG DEPENDENCIESFOLDER=dependenciesFiles
  41. ARG TOOLS_PATH=/opt
  42. ARG INSTALLER_PATH=/tmp/dependenciesFiles
  43. RUN mkdir -p ${INSTALLER_PATH}
  44. COPY dependenciesFiles/ ${INSTALLER_PATH}
  45. # install & setup armcc
  46. RUN ${INSTALLER_PATH}/${ARMCC} --i-agree-to-the-contained-eula --no-interactive -v -d ${TOOLS_PATH}/armcc
  47. ENV PATH=${PATH}:${TOOLS_PATH}/armcc/bin
  48. ENV CI_ARMCC5_TOOLCHAIN_ROOT=${TOOLS_PATH}/armclang/bin
  49. # install & setup armclang
  50. RUN ${INSTALLER_PATH}/${ARMCLANG} --i-agree-to-the-contained-eula --no-interactive -v -d ${TOOLS_PATH}/armclang
  51. ENV PATH=${PATH}:${TOOLS_PATH}/armclang/bin
  52. ENV CI_ARMCC6_TOOLCHAIN_ROOT=${TOOLS_PATH}/armclang/bin
  53. # install & setup armclang ltm
  54. RUN ${INSTALLER_PATH}/${ARMCLANGLTM} --i-agree-to-the-contained-eula --no-interactive -v -d ${TOOLS_PATH}/armclangltm
  55. ENV CI_ARMCC6LTM_TOOLCHAIN_ROOT=${TOOLS_PATH}/armclangltm/bin
  56. # install & setup gcc
  57. RUN mkdir -p ${TOOLS_PATH}
  58. WORKDIR ${TOOLS_PATH}
  59. RUN tar -xvf ${INSTALLER_PATH}/${GCC}
  60. ENV PATH=${PATH}:${TOOLS_PATH}/gcc-arm-none-eabi-10-2020-q4-major/bin
  61. ENV CI_GCC_TOOLCHAIN_ROOT=${TOOLS_PATH}/gcc-arm-none-eabi-10-2020-q4-major/bin
  62. WORKDIR /
  63. # install fast models 11.12
  64. RUN mkdir -p ${TOOLS_PATH}/fvp/
  65. WORKDIR ${TOOLS_PATH}/fvp/
  66. RUN tar -xvf ${INSTALLER_PATH}/${FASTMODELS}
  67. ENV PATH=${PATH}:${TOOLS_PATH}/fvp
  68. WORKDIR /
  69. # install doxygen
  70. RUN dpkg -i ${INSTALLER_PATH}/${DOXYGEN}
  71. # install PackChk
  72. RUN cp ${INSTALLER_PATH}/PackChk /usr/local/bin/PackChk
  73. RUN chmod +x /usr/local/bin/PackChk
  74. # install Python requirements
  75. COPY requirements.txt ${INSTALLER_PATH}/
  76. # hadolint ignore=DL3013
  77. RUN python3 -m pip install -U --no-cache-dir pip && \
  78. python3 -m pip install -U --no-cache-dir -r ${INSTALLER_PATH}/requirements.txt
  79. # install buildtools
  80. RUN python3 -m pip install --no-cache-dir -r ${INSTALLER_PATH}/buildtools/requirements.txt
  81. RUN mv ${INSTALLER_PATH}/buildtools ${TOOLS_PATH}
  82. COPY rtebuild /home/jenkins/.rtebuild
  83. COPY rtebuild /root/.rtebuild
  84. ENV PATH=${PATH}:${TOOLS_PATH}/buildtools
  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"]