/
Dockerfile.build
96 lines (89 loc) · 2.53 KB
/
Dockerfile.build
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# Build Debian Python packages using the Deadsnakes PPA
#
# To create a package for Stretch in `dist/`, call:
#
# ./build.sh debian:stretch
# Build arguments, as provided by 'build.sh'
ARG DIST_ID="debian"
ARG CODENAME="stretch"
ARG SNAKE
ARG ZIPLINK
## Start package builder image for the chosen platform
FROM ${DIST_ID}:${CODENAME} AS dpkg-##ID##
# Pass build args into image scope
ARG CODENAME
ARG SNAKE
ARG ZIPLINK
# Install build tools and package's build deps
RUN env LANG=C apt-get update -qq -o Acquire::Languages=none \
&& env LANG=C DEBIAN_FRONTEND=noninteractive apt-get upgrade \
-yqq -o Dpkg::Options::=--force-unsafe-io \
&& env LANG=C DEBIAN_FRONTEND=noninteractive apt-get install \
-yqq --no-install-recommends -o Dpkg::Options::=--force-unsafe-io \
"" \
apt-transport-https \
apt-utils \
build-essential \
curl \
debhelper \
devscripts \
equivs \
tar \
unzip \
vim \
"" \
autoconf \
blt-dev \
debhelper \
libbluetooth-dev \
libbz2-dev \
libdb-dev \
libexpat1-dev \
libffi-dev \
libgdbm-dev \
libgpm2 \
liblzma-dev \
libmpdec-dev \
libncursesw5-dev \
libreadline-dev \
libsqlite3-dev \
libssl-dev \
locales \
lsb-release \
mime-support \
netbase \
net-tools \
python3 \
python3-pip \
python3-sphinx \
quilt \
sharutils \
texinfo \
time \
tk-dev \
xauth \
xvfb \
zlib1g-dev \
&& : python3 -m pip install -U Sphinx \
&& apt-get clean && rm -rf "/var/lib/apt/lists"/*
# update of Sphinx is for Stretch and Python 3.8
# Fetch and prepare deadsnakes code
WORKDIR /root
RUN curl -Lk "${ZIPLINK}" -o python.zip \
&& unzip -q python.zip \
&& { cd python*-ubuntu-*/ || cd python*-debian-*/ ; } \
&& sed -i \
-e "1s/xenial/$CODENAME/g" \
-e "1s/bionic/$CODENAME/g" \
-e "1s/focal/$CODENAME/g" \
-e "1s/jammy/$CODENAME/g" \
-e "1s/+$CODENAME/~$CODENAME/g" \
debian/changelog \
&& sed -i \
-e 's/^Maintainer:/Uploaders: Juergen Hermann <jh@web.de>\nMaintainer:/' \
debian/control
# Build package
RUN { cd python*-ubuntu-*/ || cd python*-debian-*/ ; } \
&& dpkg-buildpackage -uc -us -b
# Collect generated files
RUN tar -cf /python.tar py*deb libpy*deb idle*deb *buildinfo *changes