mirror of
https://github.com/SerenityOS/serenity
synced 2024-09-06 17:06:31 +00:00
![kleines Filmröllchen](/assets/img/avatar_default.png)
Docker is a nice way of doing build automation, or just containerizing builds for increased safety and isolating unstable packages. The old Dockerfile in the toolchain did not satisfy these needs. The new Dockerfile is known to run successfully on Docker version 20.10.7. It clones the SerenityOS repo and builds the toolchain. In this way, it is intended to be a starting point for other Docker images that can e.g. run builds. For example, one can simply run this docker image as-is, exec a shell in it and run a build there.
35 lines
803 B
Docker
35 lines
803 B
Docker
FROM ubuntu:21.04
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN apt-get update -y \
|
|
&& apt-get install -y \
|
|
build-essential \
|
|
ccache \
|
|
cmake \
|
|
curl \
|
|
genext2fs \
|
|
gettext \
|
|
git \
|
|
imagemagick \
|
|
libmpfr-dev \
|
|
libmpc-dev \
|
|
libgmp-dev \
|
|
e2fsprogs \
|
|
ninja-build \
|
|
qemu-utils \
|
|
rsync \
|
|
sudo \
|
|
tzdata \
|
|
unzip \
|
|
wget
|
|
RUN apt install gcc-10 g++-10; \
|
|
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 900 --slave /usr/bin/g++ g++ /usr/bin/g++-10
|
|
|
|
RUN git clone --depth 1 https://github.com/SerenityOS/serenity.git /serenity/serenity-git
|
|
RUN cd /serenity/serenity-git/Toolchain; \
|
|
./BuildIt.sh
|
|
|
|
WORKDIR /serenity
|
|
VOLUME /serenity/out
|