| ################################################################################ |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| ################################################################################ |
| |
| FROM ubuntu:20.04 |
| |
| ARG RUNNER_VERSION=2.296.2 |
| |
| RUN apt-get -yqq update |
| # Install APT packages |
| RUN DEBIAN_FRONTEND=noninteractive apt-get install -yqq acl aria2 apt-transport-https binutils bison brotli build-essential bzip2 ca-certificates coreutils curl dbus dnsutils dpkg fakeroot file flex fonts-noto-color-emoji ftp gnupg2 haveged imagemagick iproute2 iputils-ping jq lib32z1 libc++-dev libc++abi-dev libcurl4 libgbm-dev libgconf-2-4 libgsl-dev libgtk-3-0 libicu66 libkrb5-3 liblttng-ust0 libmagic-dev libmagickcore-dev libmagickwand-dev libsecret-1-dev libssl1.1 libsqlite3-dev libxss1 locales m4 mediainfo mercurial net-tools netcat openssh-client p7zip-full p7zip-rar parallel pass patchelf pkg-config pollinate python-is-python3 rpm rsync shellcheck sqlite3 ssh sshpass subversion sudo swig telnet texinfo time tk tzdata unzip upx wget xorriso xvfb xz-utils zip zlib1g zsync |
| RUN apt-get clean |
| RUN rm -rf /var/lib/apt/lists/* |
| RUN useradd -m actions && usermod -aG sudo actions && echo "%sudo ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers |
| USER actions |
| WORKDIR /home/actions |
| |
| # Get GitHub Actions Self-hosted Runners |
| RUN curl -O -L https://github.com/actions/runner/releases/download/v$RUNNER_VERSION/actions-runner-linux-x64-$RUNNER_VERSION.tar.gz |
| RUN tar xzf ./actions-runner-linux-x64-$RUNNER_VERSION.tar.gz |
| |
| # Get Docker |
| RUN curl -fsSL https://get.docker.com -o get-docker.sh |
| RUN sudo sh get-docker.sh |
| |
| # Install docker-compose |
| RUN sudo apt-get update && sudo apt-get install docker-compose-plugin |
| |
| # Install gcloud |
| # Make sure that your operating system meets the requirements |
| RUN sudo apt-get install apt-transport-https ca-certificates gnupg |
| # Add the gcloud CLI distribution URI as a package source |
| RUN echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list |
| # Import the Google Cloud public key |
| RUN curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add - |
| # Update and install the gcloud CLI |
| RUN sudo apt-get update && sudo apt-get install google-cloud-cli |
| |
| |
| # Copy and chmod the entrypoint file |
| COPY --chown=actions:actions entrypoint.sh ./entrypoint.sh |
| RUN sudo chmod u+x ./entrypoint.sh |
| |
| CMD ["/home/actions/entrypoint.sh"] |
| ENTRYPOINT ["/bin/bash"] |