mirror of
https://github.com/EpicMorg/docker-scripts.git
synced 2025-04-22 22:43:33 +03:00
126 lines
5.4 KiB
Docker
126 lines
5.4 KiB
Docker
FROM quay.io/epicmorg/teamcity-agent: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/*
|
|
|
|
##################################################################
|
|
# TeamCity Agent 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
|
|
|
|
##################################################################
|
|
# Cleanup
|
|
##################################################################
|
|
RUN echo "clean up" && \
|
|
apt-get clean -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
|
|
##################################################################
|
|
WORKDIR ${AGENT_DIST}
|
|
|
|
# A better fix for TW-52939 Dockerfile build fails because of aufs
|
|
VOLUME ["/var/lib/docker", "/var/lib/containers", "/var/tmp"]
|
|
|
|
RUN updatedb
|