Add Dockerfile and github docker workflow pushing to ghcr.io (#1)

This commit is contained in:
Mark Jansen 2024-08-15 16:38:49 +02:00 committed by GitHub
parent c621dfd21d
commit d7f680803b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 99 additions and 0 deletions

24
.github/workflows/docker.yml vendored Normal file
View File

@ -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 }}

39
Docker/Dockerfile Normal file
View File

@ -0,0 +1,39 @@
FROM ubuntu:24.04
LABEL org.opencontainers.image.authors="Mark Jansen <mark.jansen@reactos.org>"
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"]

31
Docker/README.md Normal file
View File

@ -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
```

5
README.md Normal file
View File

@ -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.