FROM quay.io/epicmorg/gitlab-runner:minimal LABEL maintainer="EpicMorg DevTeam, developer@epicm.org" ARG DEBIAN_FRONTEND=noninteractive ################################################################## # OCI setup: Buildah, Podman, Kaniko, Docker ################################################################## # https://docs.docker.com/build/architecture/#install-buildx RUN install -m 0755 -d /etc/apt/keyrings && \ curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc && \ chmod a+r /etc/apt/keyrings/docker.asc && \ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian bookworm stable nightly" | tee /etc/apt/sources.list.d/docker.list > /dev/null && \ apt-get update && \ apt-get install -y --no-install-recommends --allow-unauthenticated \ docker-ce \ docker-ce-cli \ containerd.io \ docker-buildx-plugin \ docker-compose-plugin \ containerd.io \ buildah \ podman \ podman-compose \ fuse-overlayfs && \ pip3 install --break-system-packages --no-cache-dir \ kaniko-wrapper \ buildah-wrapper && \ systemctl disable docker && \ systemctl disable podman && \ rm -rf /bin/docker-compose && \ rm -rf /sbin/docker-compose && \ rm -rf /usr/bin/docker-compose && \ rm -rf /usr/sbin/docker-compose && \ rm -rf /usr/local/bin/docker-compose && \ rm -rf /usr/local/sbin/docker-compose && \ export DOCKER_COMPOSE_VERSION=`curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r` && \ echo "Latest compose is: ${DOCKER_COMPOSE_VERSION}" && \ curl -SL https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose && \ chmod +x /usr/local/bin/docker-compose && \ # cleanup apt-get clean -y && \ apt-get clean all -y && \ apt-get autoclean -y && \ rm -rfv /var/lib/apt/lists/* && \ rm -rfv /var/cache/apt/archives/*.deb && \ rm -rfv /tmp/* ################################################################## # OCI post-setup ################################################################## ENV BUILDAH_FORMAT=docker ENV BUILDAH_ISOLATION=docker ENV DOCKER_HOST="unix:///var/run/docker.sock" ENV PODMAN_HOST="unix:///var/run/docker.sock" COPY etc/ /etc/ ################################################################## # installing dotnet ################################################################## ENV DOTNET_CHANNEL=STS ENV DOTNET_ROOT=${EMG_LOCAL_BASE_DIR}/dotnet/${DOTNET_CHANNEL} ARG DOTNET_TOOLS_DIR=${DOTNET_ROOT}/tools ARG DOTNET_INSTALL_DIR=${DOTNET_ROOT} ARG DOTNET_INSTALL_SCRIPT_URL=https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.sh ENV DOTNET_CLI_TELEMETRY_OPTOUT=true ENV DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true ADD ${DOTNET_INSTALL_SCRIPT_URL} /tmp RUN mkdir -p ${DOTNET_ROOT} && \ chmod +x /tmp/dotnet-install.sh && \ /tmp/dotnet-install.sh --verbose --no-path --install-dir ${DOTNET_ROOT} --channel ${DOTNET_CHANNEL} --version latest ################################################################## # Setup $PATH ################################################################## ENV PATH=$PATH:${DOTNET_ROOT}:${DOTNET_TOOLS_DIR} ################################################################## # Version after install ################################################################## RUN echo "=============================================" && \ echo $(dotnet --info) && \ echo $(dotnet --list-sdks) && \ echo $(dotnet --list-runtimes) && \ echo "=============================================" ################################################################## # Mono ################################################################## RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF && \ # echo "deb https://download.mono-project.com/repo/debian stable-buster main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list && \ # echo "deb https://download.mono-project.com/repo/debian nightly-buster main" | sudo tee /etc/apt/sources.list.d/mono-official-nightly.list && \ echo "deb https://download.mono-project.com/repo/debian preview-buster main" | sudo tee /etc/apt/sources.list.d/mono-official-preview.list && \ apt-get update && \ apt-get install -y --allow-unauthenticated \ mono-complete \ mono-llvm-support \ mono-devel \ mono-dbg \ referenceassemblies-pcl \ ca-certificates-mono \ mono-xsp4 ################################################################## # cleaninig up ################################################################## RUN apt-get clean -y && \ apt-get clean all -y && \ apt-get autoclean -y && \ rm -rfv /var/lib/apt/lists/* && \ rm -rfv /var/cache/apt/archives/*.deb && \ rm -rfv /root/tmp/* && \ rm -rfv /tmp/* ################################################################## # final config ################################################################## VOLUME ["/var/lib/docker", "/var/lib/containers", "/var/tmp"] RUN updatedb