Skip to content

Commit d9bf45b

Browse files
authored
Merge pull request #15 from elecena/python-and-php-upgrade
Python 3.9.5 and PHP 8.0.7
2 parents b770fa9 + 27664a3 commit d9bf45b

File tree

2 files changed

+50
-56
lines changed

2 files changed

+50
-56
lines changed

Dockerfile

Lines changed: 40 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,56 @@
11
# elecena.pl (c) 2015-2021
22

33
# @see https://hub.docker.com/_/composer
4-
FROM composer:1.10.20 AS php-composer
4+
FROM composer:2.1.3 AS php-composer
5+
RUN /usr/bin/composer -v
6+
7+
# @see https://hub.docker.com/_/php
8+
FROM php:8.0.7-cli-alpine AS php
9+
RUN apk add \
10+
bzip2-dev \
11+
libsodium-dev \
12+
libxml2-dev \
13+
libxslt-dev
14+
15+
RUN docker-php-ext-install \
16+
bz2 \
17+
calendar \
18+
exif \
19+
pcntl \
20+
shmop \
21+
soap \
22+
sockets \
23+
sodium \
24+
sysvsem \
25+
sysvshm \
26+
xsl
27+
28+
RUN which php; php -v; php -m; php -i | grep ini
529

630
# @see https://hub.docker.com/_/python/
7-
FROM python:3.9.0-alpine3.12
31+
FROM python:3.9.5-alpine
832
RUN pip install virtualenv && rm -rf /root/.cache
33+
RUN python -V
934

1035
# copy composer from the first stage
1136
COPY --from=php-composer /usr/bin/composer /usr/bin
1237

13-
# set up PHP 8.0 packages repository
14-
# @see https://github.com/codecasts/php-alpine
15-
ADD https://dl.bintray.com/php-alpine/key/php-alpine.rsa.pub /etc/apk/keys/php-alpine.rsa.pub
16-
RUN echo "https://dl.bintray.com/php-alpine/v3.12/php-8.0" >> /etc/apk/repositories
17-
18-
ENV PHP_VERSION 8.0.1
19-
20-
# install dependencies
21-
RUN apk update && apk add \
22-
php8 \
23-
php8-bz2 \
24-
php8-calendar \
25-
php8-curl \
26-
php8-ctype \
27-
php8-exif \
28-
php8-ftp \
29-
php8-gettext \
30-
php8-iconv \
31-
php8-mbstring \
32-
php8-opcache \
33-
php8-openssl \
34-
php8-pcntl \
35-
php8-pdo \
36-
php8-phar \
37-
php8-posix \
38-
php8-session \
39-
php8-shmop \
40-
php8-soap \
41-
php8-sockets \
42-
php8-sodium \
43-
php8-sysvsem \
44-
php8-sysvshm \
45-
php8-xmlreader \
46-
php8-xml \
47-
php8-xsl \
48-
php8-zlib \
49-
# see https://github.com/elecena/python-php/issues/8
50-
# The problem seems to be that iconv in musl is not implemented to support that conversion, when using GNU iconv it works.
51-
gnu-libiconv \
52-
&& rm -rf /tmp/* /var/log/* /var/cache/*
38+
# copy PHP binary and required libs
39+
COPY --from=php /usr/local/bin/php /usr/bin
40+
COPY --from=php /usr/local/etc/php /usr/local/etc/php
41+
COPY --from=php /usr/lib/*.so.* /usr/lib
42+
COPY --from=php /usr/local/lib/php /usr/local/lib/php
5343

44+
# see https://github.com/elecena/python-php/issues/8
45+
# The problem seems to be that iconv in musl is not implemented to support that conversion, when using GNU iconv it works.
46+
RUN apk add gnu-libiconv
5447
# use GNU iconv in php
55-
ENV LD_PRELOAD="/usr/lib/preloadable_libiconv.so php-fpm7 php7"
48+
ENV LD_PRELOAD="/usr/lib/preloadable_libiconv.so php-fpm php"
49+
# and test it...
50+
RUN php -r '$res = iconv("utf-8", "utf-8//IGNORE", "fooą");'
5651

57-
# add a symlink
58-
RUN ln -s /usr/bin/php8 /usr/bin/php
52+
RUN php -v; php -m; php -i | grep ini
53+
ENV PHP_VERSION 8.0.7
5954

6055
# add an info script
6156
WORKDIR /opt

README.md

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ docker pull elecena/python-php
1111

1212
```
1313
$ docker images | head
14-
REPOSITORY TAG IMAGE ID CREATED SIZE
15-
elecena/python-php latest a573fc57ed6a 1 second ago 104MB
14+
REPOSITORY TAG IMAGE ID CREATED SIZE
15+
elecena/python-php latest 0a1466db6d26 2 seconds ago 104MB
1616
```
1717

1818
## Installed software
@@ -21,15 +21,14 @@ elecena/python-php latest a573fc5
2121
$ docker run -it elecena/python-php sh info.sh
2222
2323
### Python
24-
Python 3.9.0
25-
virtualenv 20.4.2 from /usr/local/lib/python3.9/site-packages/virtualenv/__init__.py
24+
Python 3.9.5
25+
virtualenv 20.4.7 from /usr/local/lib/python3.9/site-packages/virtualenv/__init__.py
2626
2727
### PHP
28-
PHP 8.0.1 (cli) (built: Jan 10 2021 13:43:09) ( NTS )
28+
PHP 8.0.7 (cli) (built: Jun 4 2021 19:02:30) ( NTS )
2929
Copyright (c) The PHP Group
30-
Zend Engine v4.0.1, Copyright (c) Zend Technologies
31-
with Zend OPcache v8.0.1, Copyright (c), by Zend Technologies
32-
Composer version 1.10.20 2021-01-27 15:41:06
30+
Zend Engine v4.0.7, Copyright (c) Zend Technologies
31+
Composer version 2.1.3 2021-06-09 16:31:20
3332
[PHP Modules]
3433
bz2
3534
calendar
@@ -42,16 +41,17 @@ exif
4241
fileinfo
4342
filter
4443
ftp
45-
gettext
4644
hash
4745
iconv
4846
json
4947
libxml
5048
mbstring
49+
mysqlnd
5150
openssl
5251
pcntl
5352
pcre
5453
PDO
54+
pdo_sqlite
5555
Phar
5656
posix
5757
readline
@@ -63,6 +63,7 @@ soap
6363
sockets
6464
sodium
6565
SPL
66+
sqlite3
6667
standard
6768
sysvsem
6869
sysvshm
@@ -71,9 +72,7 @@ xml
7172
xmlreader
7273
xmlwriter
7374
xsl
74-
Zend OPcache
7575
zlib
7676
7777
[Zend Modules]
78-
Zend OPcache
7978
```

0 commit comments

Comments
 (0)