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"]
