mirror of
https://github.com/Magnus167/rustframe.git
synced 2025-08-20 04:30:01 +00:00
45 lines
1.9 KiB
Docker
45 lines
1.9 KiB
Docker
FROM ubuntu:latest
|
|
|
|
ARG RUNNER_VERSION="2.323.0"
|
|
|
|
# Prevents installdependencies.sh from prompting the user and blocking the image creation
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN apt update -y && apt upgrade -y && useradd -m docker
|
|
RUN apt install -y --no-install-recommends \
|
|
curl jq git zip unzip \
|
|
# dev dependencies
|
|
build-essential libssl-dev libffi-dev python3 python3-venv python3-dev python3-pip \
|
|
# dot net core dependencies
|
|
libicu74 libssl3 libkrb5-3 zlib1g libcurl4 \
|
|
# Rust and Cargo dependencies
|
|
gcc cmake
|
|
|
|
# Install GitHub CLI
|
|
RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \
|
|
&& chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \
|
|
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
|
|
&& apt update -y && apt install -y gh \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install Rust and Cargo
|
|
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
|
ENV PATH="/home/docker/.cargo/bin:${PATH}"
|
|
ENV HOME="/home/docker"
|
|
|
|
RUN cd /home/docker && mkdir actions-runner && cd actions-runner \
|
|
&& curl -O -L https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/actions-runner-linux-x64-${RUNNER_VERSION}.tar.gz \
|
|
&& tar xzf ./actions-runner-linux-x64-${RUNNER_VERSION}.tar.gz
|
|
|
|
RUN chown -R docker ~docker && /home/docker/actions-runner/bin/installdependencies.sh
|
|
|
|
COPY entrypoint.sh entrypoint.sh
|
|
|
|
# make the script executable
|
|
RUN chmod +x entrypoint.sh
|
|
|
|
# since the config and run script for actions are not allowed to be run by root,
|
|
# set the user to "docker" so all subsequent commands are run as the docker user
|
|
USER docker
|
|
|
|
ENTRYPOINT ["./entrypoint.sh"] |