mirror of
https://github.com/johndoe6345789/MetalOS.git
synced 2026-04-24 13:45:02 +00:00
71 lines
1.5 KiB
Docker
71 lines
1.5 KiB
Docker
# MetalOS Docker Build Environment
|
|
# This container includes all dependencies needed to build MetalOS
|
|
|
|
FROM ubuntu:22.04
|
|
|
|
# Avoid interactive prompts during package installation
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
# Set working directory
|
|
WORKDIR /metalos
|
|
|
|
# Install base build tools and dependencies
|
|
RUN apt-get update && apt-get install -y \
|
|
# Build essentials
|
|
build-essential \
|
|
clang \
|
|
clang++ \
|
|
lld \
|
|
nasm \
|
|
make \
|
|
cmake \
|
|
ninja-build \
|
|
meson \
|
|
pkg-config \
|
|
git \
|
|
wget \
|
|
curl \
|
|
ca-certificates \
|
|
# QEMU and UEFI firmware
|
|
qemu-system-x86 \
|
|
ovmf \
|
|
# Image creation tools
|
|
mtools \
|
|
xorriso \
|
|
dosfstools \
|
|
# Python for build scripts and Conan
|
|
python3 \
|
|
python3-pip \
|
|
# Additional utilities
|
|
vim \
|
|
less \
|
|
file \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install Conan package manager
|
|
RUN pip3 install --no-cache-dir conan
|
|
|
|
# Detect and configure Conan profile
|
|
RUN conan profile detect --force
|
|
|
|
# Create directory structure for dependencies
|
|
RUN mkdir -p /metalos/deps/firmware \
|
|
/metalos/deps/ovmf \
|
|
/metalos/deps/mesa-radv \
|
|
/metalos/deps/qt6 \
|
|
/metalos/scripts
|
|
|
|
# Set up OVMF firmware in deps directory
|
|
RUN cp /usr/share/OVMF/OVMF_CODE.fd /metalos/deps/ovmf/ 2>/dev/null || \
|
|
cp /usr/share/ovmf/OVMF.fd /metalos/deps/ovmf/ 2>/dev/null || \
|
|
echo "OVMF firmware will be installed by setup script"
|
|
|
|
# Set environment variables
|
|
ENV PATH="/metalos/tools:${PATH}"
|
|
ENV METALOS_ROOT="/metalos"
|
|
ENV CC=clang
|
|
ENV CXX=clang++
|
|
|
|
# Default command
|
|
CMD ["/bin/bash"]
|