runner/ubuntu-jammy/Dockerfile

113 lines
3.2 KiB
Docker

ARG PYTHON_VERSION=3.12.0
ARG PYTHON_VERSION_SHORT=3.12
FROM ubuntu:22.04 AS python_build
ARG PYTHON_VERSION
ARG PYTHON_VERSION_SHORT
ENV DEBIAN_FRONTEND=noninteractive
WORKDIR /root
RUN apt-get update -y \
&& apt-get install --no-install-recommends --no-install-suggests -y \
ca-certificates \
curl \
gcc \
gnupg \
libbz2-dev \
libev-dev \
libffi-dev \
libgdbm-dev \
liblzma-dev \
libncurses-dev \
libreadline-dev \
libsqlite3-dev \
libssl-dev \
make \
tk-dev \
wget \
zlib1g-dev
RUN set -x \
&& mkdir -p /root/build \
&& cd /root/build \
&& curl -O https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz \
&& tar -xvzf Python-${PYTHON_VERSION}.tgz \
&& cd Python-${PYTHON_VERSION} \
&& ./configure \
--prefix=/usr \
--enable-optimizations \
&& make
FROM ubuntu:22.04
ARG PYTHON_VERSION
ARG PYTHON_VERSION_SHORT
ENV NODEJS_VERSION=22.x
ENV NVM_VERSION=0.40.1
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update -y \
&& apt-get install --no-install-recommends --no-install-suggests -y \
apt-transport-https \
ca-certificates \
curl \
gcc \
git \
git-lfs \
gnupg \
libbz2-1.0 \
libev4 \
libffi8 \
libgdbm6 \
liblzma5 \
libncurses6 \
libreadline8 \
libsqlite3-0 \
make \
openssl \
sudo \
tklib \
vim
RUN adduser --home /home/runner --shell /bin/bash --disabled-password runner \
&& adduser runner sudo \
&& echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
RUN set -x \
&& mkdir -p /usr/share/keyrings \
&& curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg \
&& chmod 644 /usr/share/keyrings/nodesource.gpg \
&& arch=$(dpkg --print-architecture) \
&& echo "deb [arch=$arch signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_${NODEJS_VERSION} nodistro main" | tee /etc/apt/sources.list.d/nodesource.list > /dev/null \
&& apt-get update -y \
&& apt-get install --no-install-recommends --no-install-suggests -y nodejs \
&& npm install --global yarn \
&& curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v${NVM_VERSION}/install.sh | bash
COPY --from=python_build /root/build /tmp/build
RUN set -x \
&& cd /tmp/build/Python-${PYTHON_VERSION} \
&& make install \
&& cd ../ \
&& rm -r Python-${PYTHON_VERSION} \
&& ln -s /usr/lib/python${PYTHON_VERSION_SHORT}/bin/python${PYTHON_VERSION_SHORT} /usr/local/bin/python${PYTHON_VERSION_SHORT} \
&& ln -s /usr/local/bin/python${PYTHON_VERSION_SHORT} /usr/local/bin/python3 \
&& curl -O https://bootstrap.pypa.io/get-pip.py \
&& python3 get-pip.py \
&& rm get-pip.py \
&& python3 -m pip install \
ansible \
virtualenv
RUN curl -sSL -O https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb \
&& dpkg -i packages-microsoft-prod.deb \
&& rm packages-microsoft-prod.deb \
&& apt-get update -y \
&& apt-get install --no-install-recommends --no-install-suggests -y azcopy
USER runner
WORKDIR /home/runner