Skip to content

Commit f6def21

Browse files
committed
Install php via multi-stage
1 parent 5a84325 commit f6def21

1 file changed

Lines changed: 13 additions & 46 deletions

File tree

Dockerfile

Lines changed: 13 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -2,60 +2,27 @@
22

33
# @see https://hub.docker.com/_/composer
44
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 which php; php -v; php -m; php -i | grep etc
510

611
# @see https://hub.docker.com/_/python/
7-
FROM python:3.9.5-alpine3.13
12+
FROM python:3.9.5-alpine
813
RUN pip install virtualenv && rm -rf /root/.cache
14+
RUN python -V
915

1016
# copy composer from the first stage
1117
COPY --from=php-composer /usr/bin/composer /usr/bin
1218

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/*
53-
54-
# use GNU iconv in php
55-
ENV LD_PRELOAD="/usr/lib/preloadable_libiconv.so php-fpm7 php7"
19+
# copy PHP binary and required libs
20+
COPY --from=php /usr/local/bin/php /usr/bin
21+
COPY --from=php /usr/local/etc/php/* /usr/local/etc/php
22+
COPY --from=php /usr/lib/*.so.* /usr/lib
5623

57-
# add a symlink
58-
RUN ln -s /usr/bin/php8 /usr/bin/php
24+
RUN php -v; php -m
25+
ENV PHP_VERSION 8.0.7
5926

6027
# add an info script
6128
WORKDIR /opt

0 commit comments

Comments
 (0)