Fix docker builds (#1814)

* Fix dockerfile.

It was broken because the practicerom package changed stuff and apt didn't like whatever changed.
This is the commit that seems to have broken how the old practicerom package worked: e7bec93b0b (diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5)

* Update docker docs.

Some references were broken in the markdown files, and there's no longer a need to run the git `safe.directory` command since the docker file was doing it already

* Include `gcc-mips-linux-gnu` in the dockerfile

* break up dockerfile commands a bit more

* Update practicerom instructions

* Update practice rom again
This commit is contained in:
Anghelo Carvajal 2025-08-12 20:02:58 -04:00 committed by GitHub
parent 1ca6ca804d
commit a0c992ea35
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 21 additions and 23 deletions

View File

@ -3,12 +3,18 @@ FROM ubuntu:24.04 AS build
ENV TZ=UTC
ENV LANG=C.UTF-8
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# Add source for practicerom-dev install
RUN apt-get update && apt-get install -y curl && \
curl -o /usr/share/keyrings/practicerom-archive-keyring.gpg https://practicerom.com/public/packages/debian/practicerom-archive-keyring.gpg && \
echo 'deb [arch=all,amd64 signed-by=/usr/share/keyrings/practicerom-archive-keyring.gpg] http://practicerom.com/public/packages/debian unstable main' > /etc/apt/sources.list.d/practicerom.list
# Install Required Dependencies
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone && \
apt-get update && apt-get install -y \
curl \
RUN apt-get update && apt-get install -y \
build-essential \
binutils-mips-linux-gnu \
gcc-mips-linux-gnu \
pkg-config \
python3 \
python3-pip \
@ -20,14 +26,11 @@ RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone &
vim \
clang-tidy-14 \
clang-format-14 \
libpng-dev && \
# Add source for practicerom-dev install
curl https://practicerom.com/public/packages/debian/pgp.pub | apt-key add - && \
echo deb http://practicerom.com/public/packages/debian staging main >/etc/apt/sources.list.d/practicerom.list && \
apt-get update && \
apt-get install -y \
practicerom-dev && \
apt-get clean && \
libpng-dev \
practicerom-dev
# Post dependencies cleanup
RUN apt-get clean && \
rm -rf /var/lib/apt/lists/*
WORKDIR /mm

View File

@ -62,7 +62,6 @@ Preparation is covered in [Building Docker](docs/BUILDING_DOCKER.md).
The build process has the following package requirements:
* make
* git
* build-essential
* binutils-mips-linux-gnu
@ -77,7 +76,7 @@ Under Debian / Ubuntu (which we recommend using), you can install them with the
```bash
sudo apt update
sudo apt install make git build-essential binutils-mips-linux-gnu curl python3 python3-pip python3-venv libpng-dev libxml2-dev
sudo apt install git build-essential binutils-mips-linux-gnu curl python3 python3-pip python3-venv libpng-dev libxml2-dev
```
#### 2. Clone the repository
@ -102,12 +101,14 @@ Rename the file to `baserom.z64`, `baserom.n64` or `baserom.v64`, depending on t
#### 4. Make and Build the ROM
To start the extraction/build process, run the following command:
For a first time build, run the following command, where `N` is the number of cores your processor has (see the note at the bottom for more information):
```bash
make init
make init -j N
```
After the very first build you'll want to run `make -j N` instead, since you likely won't need all the setup the `init` command provides.
The extraction/build process:
1. Prepares build environment:
- Creates a Python virtual environment

View File

@ -6,7 +6,7 @@ You will need [Docker](https://docs.docker.com/get-docker/) Follow the instructi
## 1. Clone the Repository
You will need to prepare a local version of the project with a copied base ROM (see steps [2](../README.md#2-clone-the-repository) and [4](../README.md#4-prepare-a-base-rom) of the Linux instructions).
You will need to prepare a local version of the project with a copied base ROM (see steps [2. Clone the repository](../README.md#2-clone-the-repository) and [3. Prepare a base ROM](../README.md#3-prepare-a-base-rom) of the Linux instructions).
## 2. Create the Docker image
@ -38,10 +38,4 @@ docker run -it --rm --mount type=bind,source="$(pwd)",destination=/mm mm "/usr/b
## 4. Setup and Build the ROM
Once inside the container, you will need to set the repository as a trusted repository with the following command:
```bash
git config --global --add safe.directory /mm
```
After that continue with step [5. Make and Build the ROM](../README.md#5-make-and-build-the-rom) of the Linux instructions to setup and build the ROM, or run any other command you need.
After that continue with step [4. Make and Build the ROM](../README.md#4-make-and-build-the-rom) of the Linux instructions to setup and build the ROM, or run any other command you need.