vn-docker/jenkins-agent/Dockerfile

77 lines
2.4 KiB
Docker

FROM jenkins/inbound-agent:latest-bookworm-jdk17
USER root
# Update APT
RUN apt-get update \
&& apt-get upgrade -y
# Building packages
RUN apt-get install -y \
sudo \
libltdl-dev \
libgtk-3-0 \
libdbus-glib-1-2 \
xvfb \
default-mysql-client \
build-essential \
python-is-python3 \
vim \
wget \
curl
# Kubernetes client
RUN apt-get install -y apt-transport-https ca-certificates curl gnupg \
&& curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.26/deb/Release.key \
| gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg \
&& chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg \
&& echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.26/deb/ /' \
| tee /etc/apt/sources.list.d/kubernetes.list \
&& chmod 644 /etc/apt/sources.list.d/kubernetes.list \
&& apt-get update \
&& apt-get install -y kubectl
# Docker
COPY --from=docker:26.1.3-cli /usr/local/bin/docker /usr/local/bin/
# Docker compose
RUN apt-get install docker-compose -y --no-install-recommends
# Puppeteer
RUN apt-get install -y --no-install-recommends \
gconf-service libasound2 libatk1.0-0 libc6 \
libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 \
libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 \
libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 \
libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 \
libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 \
fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils
# Firefox
RUN cd /opt \
&& wget https://ftp.mozilla.org/pub/firefox/releases/64.0.2/linux-x86_64/en-US/firefox-64.0.2.tar.bz2 \
&& tar xvjf firefox-64.0.2.tar.bz2 \
&& rm firefox-64.0.2.tar.bz2
# Myt
RUN apt-get install -y --no-install-recommends \
libkrb5-dev \
libssl-dev
# Clean APT
RUN rm -rf /var/lib/apt/lists/*
# Fix defunct processeses: https://github.com/jenkinsci/docker-inbound-agent/issues/51
ENV TINI_VERSION v0.19.0
RUN wget -O /tini https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini \
&& chmod 755 /tini
# User
RUN echo "jenkins ALL=NOPASSWD: ALL" >> /etc/sudoers \
#&& groupadd -g 998 docker \
&& usermod -a -G 998 jenkins
USER jenkins
ENTRYPOINT ["/tini", "--", "/usr/local/bin/jenkins-agent"]