12eb4461aSRichard Henderson# 22eb4461aSRichard Henderson# Docker toolchain cross-compiler 32eb4461aSRichard Henderson# 42eb4461aSRichard Henderson# This dockerfile is used for building a cross-compiler toolchain. 52eb4461aSRichard Henderson# The script for building the toolchain is supplied via extra-files. 62eb4461aSRichard Henderson# 74239162aSAlex BennéeFROM docker.io/library/debian:11-slim 82eb4461aSRichard Henderson 92eb4461aSRichard Henderson# Install build utilities for building gcc and glibc. 102eb4461aSRichard Henderson# ??? The build-dep isn't working, missing a number of 112eb4461aSRichard Henderson# minimal build dependiencies, e.g. libmpc. 122eb4461aSRichard Henderson 13*13aae9b4SIlya LeoshkevichRUN sed 's/^deb /deb-src /' </etc/apt/sources.list >/etc/apt/sources.list.d/deb-src.list 14*13aae9b4SIlya Leoshkevich 152eb4461aSRichard HendersonRUN apt update && \ 162eb4461aSRichard Henderson DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \ 172eb4461aSRichard Henderson DEBIAN_FRONTEND=noninteractive eatmydata \ 182eb4461aSRichard Henderson apt install -y --no-install-recommends \ 192eb4461aSRichard Henderson bison \ 204239162aSAlex Bennée ca-certificates \ 212eb4461aSRichard Henderson flex \ 222eb4461aSRichard Henderson gawk \ 232eb4461aSRichard Henderson libmpc-dev \ 242eb4461aSRichard Henderson libmpfr-dev \ 252eb4461aSRichard Henderson rsync \ 262eb4461aSRichard Henderson wget && \ 272eb4461aSRichard Henderson DEBIAN_FRONTEND=noninteractive eatmydata \ 282eb4461aSRichard Henderson apt build-dep -yy --arch-only gcc glibc 292eb4461aSRichard Henderson 302eb4461aSRichard HendersonADD build-toolchain.sh /root/build-toolchain.sh 312eb4461aSRichard Henderson 322eb4461aSRichard HendersonRUN cd /root && ./build-toolchain.sh 332eb4461aSRichard Henderson 342eb4461aSRichard Henderson# Throw away the extra toolchain build deps, the downloaded source, 35483c3b17SAlex Bennée# and the build trees by restoring the original image, 362eb4461aSRichard Henderson# then copying the built toolchain from stage 0. 37483c3b17SAlex BennéeFROM docker.io/library/debian:11-slim 38*13aae9b4SIlya LeoshkevichRUN apt update && \ 39*13aae9b4SIlya Leoshkevich DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \ 40*13aae9b4SIlya Leoshkevich DEBIAN_FRONTEND=noninteractive eatmydata \ 41*13aae9b4SIlya Leoshkevich apt install -y --no-install-recommends \ 42*13aae9b4SIlya Leoshkevich libmpc3 432eb4461aSRichard HendersonCOPY --from=0 /usr/local /usr/local 4493bd2954SAlex Bennée# As a final step configure the user (if env is defined) 4593bd2954SAlex BennéeARG USER 4693bd2954SAlex BennéeARG UID 4793bd2954SAlex BennéeRUN if [ "${USER}" ]; then \ 4893bd2954SAlex Bennée id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi 49