From d7f680803bf83805de5e3c172f026890480d54be Mon Sep 17 00:00:00 2001 From: Mark Jansen Date: Thu, 15 Aug 2024 16:38:49 +0200 Subject: [PATCH] Add Dockerfile and github docker workflow pushing to ghcr.io (#1) --- .github/workflows/docker.yml | 24 ++++++++++++++++++++++ Docker/Dockerfile | 39 ++++++++++++++++++++++++++++++++++++ Docker/README.md | 31 ++++++++++++++++++++++++++++ README.md | 5 +++++ 4 files changed, 99 insertions(+) create mode 100644 .github/workflows/docker.yml create mode 100644 Docker/Dockerfile create mode 100644 Docker/README.md create mode 100644 README.md diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..93d6156 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,24 @@ +name: Docker + +on: + push: + branches: + - master + +jobs: + docker: + runs-on: ubuntu-22.04 + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Build and Push Docker Image + uses: mr-smithers-excellent/docker-build-push@v6 + with: + image: rosbe-unix-release-engineering + dockerfile: Docker/Dockerfile + registry: ghcr.io + addLatest: true + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} diff --git a/Docker/Dockerfile b/Docker/Dockerfile new file mode 100644 index 0000000..ce297e3 --- /dev/null +++ b/Docker/Dockerfile @@ -0,0 +1,39 @@ +FROM ubuntu:24.04 +LABEL org.opencontainers.image.authors="Mark Jansen " +LABEL Description="RosBE-Unix on Ubuntu with Release Engineering scripts" + +WORKDIR /work + +# The settings `DEBIAN_FRONTEND="noninteractive" TZ="Europe/Amsterdam"` are for `texinfo` +RUN apt-get update -y \ + && apt-get upgrade -y \ + && DEBIAN_FRONTEND="noninteractive" TZ="Europe/Amsterdam" apt-get install -y \ + bison \ + build-essential \ + flex \ + git \ + nano \ + p7zip-full \ + pkg-config \ + python-is-python3 \ + python3 \ + texinfo \ + wget \ + zip \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* + +RUN wget https://downloads.sourceforge.net/reactos/RosBE-Unix-2.2.1.tar.bz2 \ + && tar -xjf RosBE-Unix-2.2.1.tar.bz2 \ + && rm RosBE-Unix-2.2.1.tar.bz2 \ + && cd RosBE-Unix-2.2.1 \ + && echo yes | bash RosBE-Builder.sh /usr/local/RosBE \ + && cd .. \ + && rm -rf RosBE-Unix-2.2.1 + +RUN git clone https://github.com/reactos/Release_Engineering \ + + && mv Release_Engineering/Release_* /usr/local/bin \ + && rm -rf Release_Engineering + +CMD ["/usr/local/RosBE/RosBE.sh", "/work"] diff --git a/Docker/README.md b/Docker/README.md new file mode 100644 index 0000000..4e7de45 --- /dev/null +++ b/Docker/README.md @@ -0,0 +1,31 @@ +# RosBE-Unix on Ubuntu with Release Engineering scripts + +Normally this docker container can be used from ghcr.io + +Below steps outline the process of running it locally. + +## Building the container + + - Create an image named `reactos-base`: + - `docker build --pull --rm -f "Dockerfile" -t reactos-base "."` + - Create a container named `reactos-builder` from the `reactos-base` image + - `docker run --name reactos-builder -it reactos-base` + - `exit` to close the container + +## Running the container + + - Run the `reactos-builder`: + - `docker start reactos-builder` + - Show all docker containers: + - `docker ps` + - Attach to the running `reactos-builder`: + - `docker attach 03e11af06800` (where `03e11af06800` is the `CONTAINER ID` from the running container) + +## Building a release + +```bash +Release_Configure +# Answer the prompts +Release_ISOs +Release_Source +``` diff --git a/README.md b/README.md new file mode 100644 index 0000000..ee9e321 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# Release Engineering + +This repository contains the scripts used to create ReactOS release images + +The docker image is created from the [Docker](Docker) folder.