mirror of
https://github.com/mudita/MuditaOS.git
synced 2025-12-30 09:28:33 -05:00
74 lines
3.1 KiB
Docker
74 lines
3.1 KiB
Docker
FROM ubuntu:jammy AS builder
|
|
ARG TOOLS_INSTALL_PATH="/usr/local"
|
|
|
|
ARG ARM_GCC_VERSION="10.3-2021.10"
|
|
ARG ARM_GCC_FILENAME=gcc-arm-none-eabi-${ARM_GCC_VERSION}-x86_64-linux
|
|
ARG ARM_GCC_FOLDER=gcc-arm-none-eabi-${ARM_GCC_VERSION}
|
|
|
|
ARG CMAKE_VERSION="3.21.3"
|
|
ARG CMAKE_FILENAME="cmake-${CMAKE_VERSION}-linux-x86_64"
|
|
|
|
ARG CODEQL_VERSION="2.11.1"
|
|
ARG CODEQL_NAME="codeql"
|
|
ARG CODEQL_FULLNAME="${CODEQL_NAME}-linux64"
|
|
ARG CODEQL_PKG="${CODEQL_NAME}.zip"
|
|
|
|
RUN ln -fs /usr/share/zoneinfo/Europe/Warsaw /etc/localtime
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN apt-get update && \
|
|
apt-get dist-upgrade -y && \
|
|
apt-get install -y apt-utils software-properties-common build-essential ca-certificates clang-format-12 clang-tidy-12 \
|
|
curl doxygen g++-10 gcc-10 gdb git libgtkmm-3.0-dev libblkid-dev libfdisk-dev libfuse-dev \
|
|
mtools ninja-build pkg-config pulseaudio libpulse0 libpulse-dev python3-magic python3-pip python3-requests \
|
|
rhash rsync tzdata tar wget zip fdisk luarocks && \
|
|
apt-get remove ccache -y
|
|
|
|
|
|
RUN luarocks install ldoc
|
|
ADD assets/requirements.txt /tmp/
|
|
RUN pip3 install -r /tmp/requirements.txt
|
|
|
|
WORKDIR /tmp
|
|
RUN wget https://developer.arm.com/-/media/Files/downloads/gnu-rm/${ARM_GCC_VERSION}/${ARM_GCC_FILENAME}.tar.bz2 && tar -xf ${ARM_GCC_FILENAME}.tar.bz2 -C ${TOOLS_INSTALL_PATH}
|
|
RUN wget https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/${CMAKE_FILENAME}.tar.gz && tar -xf ${CMAKE_FILENAME}.tar.gz -C ${TOOLS_INSTALL_PATH}
|
|
RUN wget https://github.com/github/codeql-cli-binaries/releases/download/v${CODEQL_VERSION}/${CODEQL_FULLNAME}.zip && unzip ${CODEQL_FULLNAME}.zip -d ${TOOLS_INSTALL_PATH}
|
|
RUN wget https://github.com/ccache/ccache/releases/download/v4.7/ccache-4.7-linux-x86_64.tar.xz && tar -xvf ccache-4.7-linux-x86_64.tar.xz && cd ccache-4.7-linux-x86_64/ && make install
|
|
|
|
WORKDIR /home/builder
|
|
RUN groupadd -r builder && \
|
|
useradd --no-log-init -r -g builder builder && \
|
|
chown -R builder:builder /home/builder
|
|
|
|
ENV PATH="${TOOLS_INSTALL_PATH}/${CODEQL_NAME}:${TOOLS_INSTALL_PATH}/${ARM_GCC_FOLDER}/bin:${TOOLS_INSTALL_PATH}/${CMAKE_FILENAME}/bin:$PATH"
|
|
RUN echo "export PATH=${PATH}" >> /etc/profile
|
|
|
|
USER builder
|
|
|
|
FROM builder as jenkins-runner
|
|
|
|
USER root
|
|
RUN apt-get update && \
|
|
apt-get install -y \
|
|
openssh-server \
|
|
openjdk-11-jdk
|
|
|
|
#Docker drops audit-related capabilities, removing from pam requirements
|
|
RUN sed -i 's|session required pam_loginuid.so|session optional pam_loginuid.so|g' /etc/pam.d/sshd
|
|
|
|
RUN sed -i /etc/ssh/sshd_config \
|
|
-e 's/#PermitRootLogin.*/PermitRootLogin no/' \
|
|
-e 's/#RSAAuthentication.*/RSAAuthentication yes/' \
|
|
-e 's/#PasswordAuthentication.*/PasswordAuthentication no/' \
|
|
-e 's/#SyslogFacility.*/SyslogFacility AUTH/' \
|
|
-e 's/#LogLevel.*/LogLevel INFO/'
|
|
|
|
RUN mkdir -p /var/run/sshd
|
|
|
|
RUN adduser --quiet --gecos '' --disabled-password --uid 6666 jenkins
|
|
|
|
COPY assets/.ssh/authorized_keys /home/jenkins/.ssh/authorized_keys
|
|
RUN chown -R jenkins:jenkins /home/jenkins/.ssh
|
|
|
|
EXPOSE 22
|
|
CMD ["/usr/sbin/sshd", "-D"] |