-
-
Notifications
You must be signed in to change notification settings - Fork 38
/
Dockerfile.builder
35 lines (25 loc) · 1.24 KB
/
Dockerfile.builder
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
FROM debian:12 AS djgpp
# Install djgpp build dependencies
RUN apt-get update && \
apt-get install -y bison flex curl gcc g++ make texinfo zlib1g-dev g++ unzip bzip2 xz-utils git
# Download build-djgpp project
RUN git clone --depth 1 https://github.com/andrewwutw/build-djgpp.git && \
cd build-djgpp && \
ENABLE_LANGUAGES=c ./build-djgpp.sh 12.2.0
FROM debian:12 AS base
# Install mingw-w64 i686 and x86_64 compilers
RUN apt-get update && \
apt-get install -y file wget mtools unzip zip gcc gcc-mingw-w64-i686 gcc-mingw-w64-x86-64 fasm make git
# Install djgpp
COPY --from=djgpp /usr/local/djgpp /usr/local/djgpp
# Add djgpp to PATH
ENV PATH /usr/local/djgpp/bin:$PATH
# Install FreeDOS LiteUSB and boot floppy images for boot disk
RUN mkdir -p /opt/freedos && \
wget https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.3/official/FD13-LiteUSB.zip -O /opt/freedos/freedos-liteusb.zip && \
wget https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.3/official/FD13-FloppyEdition.zip -O /opt/freedos/freedos-floppy.zip
# Grab CWSDPMI binary
RUN mkdir -p /opt/cwsdpmi && \
wget http://sandmann.dotster.com/cwsdpmi/csdpmi7b.zip -O /opt/cwsdpmi/cwsdpmi.zip
# Assume source in /root
WORKDIR /root