1
+ <<<<<<< HEAD
1
2
2
3
FROM danielschulz/alpine:3.13.1
3
4
@@ -21,12 +22,20 @@ RUN set -eux; \
21
22
;
22
23
# other runtime dependencies for Python are installed later
23
24
25
+ <<<<<<<< HEAD:3.10-rc/alpine3.13/Dockerfile
24
26
# use 3.6, 3.7, 3.8, 3.9, (as of now, use "master" for 3.10)
25
27
ARG CPYTHON_GIT_URI="https://github.com/danielschulz/cpython.git"
26
28
ARG CPYTHON_GIT_REFERENCE="v3.10.256a_20201228_1455"
27
29
ARG PYTHON_VERSION=${CPYTHON_GIT_REFERENCE}
28
30
29
31
ENV PYTHON_VERSION=${PYTHON_VERSION}
32
+ |||||||| 0559964:3.9/alpine3.12/Dockerfile
33
+ ENV GPG_KEY E3FF2839C048B25C084DEBE9B26995E310250568
34
+ ENV PYTHON_VERSION 3.9.0
35
+ ========
36
+ ENV GPG_KEY E3FF2839C048B25C084DEBE9B26995E310250568
37
+ ENV PYTHON_VERSION 3.9.2
38
+ >>>>>>>> ec67f96b61c55ba35acd6c553f21641c5bf0ccc5:3.9/alpine3.12/Dockerfile
30
39
31
40
RUN set -ex \
32
41
&& apk add --no-cache --virtual .fetch-deps \
@@ -114,10 +123,24 @@ RUN cd /usr/local/bin \
114
123
&& ln -s python3-config python-config
115
124
116
125
# if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value '<VERSION>'"
126
+ <<<<<<<< HEAD:3.10-rc/alpine3.13/Dockerfile
117
127
ENV PYTHON_PIP_VERSION 20.3.3
128
+ |||||||| 0559964:3.9/alpine3.12/Dockerfile
129
+ ENV PYTHON_PIP_VERSION 20.3.1
130
+ ========
131
+ ENV PYTHON_PIP_VERSION 21.0.1
132
+ >>>>>>>> ec67f96b61c55ba35acd6c553f21641c5bf0ccc5:3.9/alpine3.12/Dockerfile
118
133
# https://github.com/pypa/get-pip
134
+ <<<<<<<< HEAD:3.10-rc/alpine3.13/Dockerfile
119
135
ENV PYTHON_GET_PIP_URL https://raw.githubusercontent.com/pypa/get-pip/${PYTHON_PIP_VERSION}/get-pip.py
120
136
ENV PYTHON_GET_PIP_SHA256 6a0b13826862f33c13b614a921d36253bfa1ae779c5fbf569876f3585057e9d2
137
+ |||||||| 0559964:3.9/alpine3.12/Dockerfile
138
+ ENV PYTHON_GET_PIP_URL https://github.com/pypa/get-pip/raw/91630a4867b1f93ba0a12aa81d0ec4ecc1e7eeb9/get-pip.py
139
+ ENV PYTHON_GET_PIP_SHA256 d48ae68f297cac54db17e4107b800faae0e5210131f9f386c30c0166bf8d81b7
140
+ ========
141
+ ENV PYTHON_GET_PIP_URL https://github.com/pypa/get-pip/raw/b60e2320d9e8d02348525bd74e871e466afdf77c/get-pip.py
142
+ ENV PYTHON_GET_PIP_SHA256 c3b81e5d06371e135fb3156dc7d8fd6270735088428c4a9a5ec1f342e2024565
143
+ >>>>>>>> ec67f96b61c55ba35acd6c553f21641c5bf0ccc5:3.9/alpine3.12/Dockerfile
121
144
122
145
RUN set -ex; \
123
146
\
@@ -143,3 +166,148 @@ RUN echo -e "Current Python version is $( python -V ) \n(found in $( which pytho
143
166
echo -e "Current PIP version is $( pip -V ) \n (found in $( which pip ))."
144
167
145
168
CMD ["python3" ]
169
+ ||||||| 0559964
170
+ =======
171
+ #
172
+ # NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
173
+ #
174
+ # PLEASE DO NOT EDIT IT DIRECTLY.
175
+ #
176
+
177
+ FROM alpine:3.13
178
+
179
+ # ensure local python is preferred over distribution python
180
+ ENV PATH /usr/local/bin:$PATH
181
+
182
+ # http://bugs.python.org/issue19846
183
+ # > At the moment, setting "LANG=C" on a Linux system *fundamentally breaks Python 3*, and that's not OK.
184
+ ENV LANG C.UTF-8
185
+
186
+ # runtime dependencies
187
+ RUN set -eux; \
188
+ apk add --no-cache \
189
+ # install ca-certificates so that HTTPS works consistently
190
+ ca-certificates \
191
+ # and tzdata for PEP 615 (https://www.python.org/dev/peps/pep-0615/)
192
+ tzdata \
193
+ ;
194
+ # other runtime dependencies for Python are installed later
195
+
196
+ ENV GPG_KEY A035C8C19219BA821ECEA86B64E628F8D684696D
197
+ ENV PYTHON_VERSION 3.10.0a6
198
+
199
+ RUN set -ex \
200
+ && apk add --no-cache --virtual .fetch-deps \
201
+ gnupg \
202
+ tar \
203
+ xz \
204
+ \
205
+ && wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" \
206
+ && wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" \
207
+ && export GNUPGHOME="$(mktemp -d)" \
208
+ && gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPG_KEY" \
209
+ && gpg --batch --verify python.tar.xz.asc python.tar.xz \
210
+ && { command -v gpgconf > /dev/null && gpgconf --kill all || :; } \
211
+ && rm -rf "$GNUPGHOME" python.tar.xz.asc \
212
+ && mkdir -p /usr/src/python \
213
+ && tar -xJC /usr/src/python --strip-components=1 -f python.tar.xz \
214
+ && rm python.tar.xz \
215
+ \
216
+ && apk add --no-cache --virtual .build-deps \
217
+ bluez-dev \
218
+ bzip2-dev \
219
+ coreutils \
220
+ dpkg-dev dpkg \
221
+ expat-dev \
222
+ findutils \
223
+ gcc \
224
+ gdbm-dev \
225
+ libc-dev \
226
+ libffi-dev \
227
+ libnsl-dev \
228
+ libtirpc-dev \
229
+ linux-headers \
230
+ make \
231
+ ncurses-dev \
232
+ openssl-dev \
233
+ pax-utils \
234
+ readline-dev \
235
+ sqlite-dev \
236
+ tcl-dev \
237
+ tk \
238
+ tk-dev \
239
+ util-linux-dev \
240
+ xz-dev \
241
+ zlib-dev \
242
+ # add build deps before removing fetch deps in case there's overlap
243
+ && apk del --no-network .fetch-deps \
244
+ \
245
+ && cd /usr/src/python \
246
+ && gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
247
+ && ./configure \
248
+ --build="$gnuArch" \
249
+ --enable-loadable-sqlite-extensions \
250
+ --enable-optimizations \
251
+ --enable-option-checking=fatal \
252
+ --enable-shared \
253
+ --with-system-expat \
254
+ --with-system-ffi \
255
+ --without-ensurepip \
256
+ && make -j "$(nproc)" \
257
+ # set thread stack size to 1MB so we don't segfault before we hit sys.getrecursionlimit()
258
+ # https://github.com/alpinelinux/aports/commit/2026e1259422d4e0cf92391ca2d3844356c649d0
259
+ EXTRA_CFLAGS="-DTHREAD_STACK_SIZE=0x100000" \
260
+ LDFLAGS="-Wl,--strip-all" \
261
+ && make install \
262
+ && rm -rf /usr/src/python \
263
+ \
264
+ && find /usr/local -depth \
265
+ \( \
266
+ \( -type d -a \( -name test -o -name tests -o -name idle_test \) \) \
267
+ -o \( -type f -a \( -name '*.pyc' -o -name '*.pyo' -o -name '*.a' \) \) \
268
+ \) -exec rm -rf '{}' + \
269
+ \
270
+ && find /usr/local -type f -executable -not \( -name '*tkinter*' \) -exec scanelf --needed --nobanner --format '%n#p' '{}' ';' \
271
+ | tr ',' '\n ' \
272
+ | sort -u \
273
+ | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
274
+ | xargs -rt apk add --no-cache --virtual .python-rundeps \
275
+ && apk del --no-network .build-deps \
276
+ \
277
+ && python3 --version
278
+
279
+ # make some useful symlinks that are expected to exist
280
+ RUN cd /usr/local/bin \
281
+ && ln -s idle3 idle \
282
+ && ln -s pydoc3 pydoc \
283
+ && ln -s python3 python \
284
+ && ln -s python3-config python-config
285
+
286
+ # if this is called "PIP_VERSION", pip explodes with "ValueError: invalid truth value '<VERSION>'"
287
+ ENV PYTHON_PIP_VERSION 21.0.1
288
+ # https://github.com/pypa/get-pip
289
+ ENV PYTHON_GET_PIP_URL https://github.com/pypa/get-pip/raw/b60e2320d9e8d02348525bd74e871e466afdf77c/get-pip.py
290
+ ENV PYTHON_GET_PIP_SHA256 c3b81e5d06371e135fb3156dc7d8fd6270735088428c4a9a5ec1f342e2024565
291
+
292
+ RUN set -ex; \
293
+ \
294
+ wget -O get-pip.py "$PYTHON_GET_PIP_URL" ; \
295
+ echo "$PYTHON_GET_PIP_SHA256 *get-pip.py" | sha256sum -c -; \
296
+ \
297
+ python get-pip.py \
298
+ --disable-pip-version-check \
299
+ --no-cache-dir \
300
+ "pip==$PYTHON_PIP_VERSION" \
301
+ ; \
302
+ pip --version; \
303
+ \
304
+ find /usr/local -depth \
305
+ \( \
306
+ \( -type d -a \( -name test -o -name tests -o -name idle_test \) \) \
307
+ -o \
308
+ \( -type f -a \( -name '*.pyc' -o -name '*.pyo' \) \) \
309
+ \) -exec rm -rf '{}' +; \
310
+ rm -f get-pip.py
311
+
312
+ CMD ["python3" ]
313
+ >>>>>>> ec67f96b61c55ba35acd6c553f21641c5bf0ccc5
0 commit comments