-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile
81 lines (76 loc) · 3.05 KB
/
Dockerfile
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
ARG BASE_REPOSITORY_URL=harbor.stacktonic.com.au
ARG BASE_IMAGE_NAME=stacktonic/nginx
ARG BASE_IMAGE_TAG=latest
FROM ${BASE_REPOSITORY_URL}/${BASE_IMAGE_NAME}:${BASE_IMAGE_TAG}
ARG PHP_VERSION=81
ENV PHP_VERSION $PHP_VERSION
# Add wait-for-it
ADD https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh /bin/wait-for-it.sh
RUN chmod +x /bin/wait-for-it.sh
RUN apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/ --allow-untrusted gnu-libiconv \
# Add testing for XMLRPC
&& apk add -U --no-cache \
# Packages
tini \
php${PHP_VERSION}-pecl-apcu \
php${PHP_VERSION} \
php${PHP_VERSION}-common \
php${PHP_VERSION}-dev \
php${PHP_VERSION}-fpm \
php${PHP_VERSION}-gd \
php${PHP_VERSION}-gmp \
php${PHP_VERSION}-mbstring \
php${PHP_VERSION}-mysqlnd \
php${PHP_VERSION}-opcache \
php${PHP_VERSION}-openssl \
php${PHP_VERSION}-pdo \
php${PHP_VERSION}-pdo_mysql \
php${PHP_VERSION}-pdo_sqlite \
php${PHP_VERSION}-pdo_pgsql \
php${PHP_VERSION}-pear \
php${PHP_VERSION}-pecl-apcu \
php${PHP_VERSION}-pecl-redis \
php${PHP_VERSION}-pgsql \
php${PHP_VERSION}-posix \
php${PHP_VERSION}-soap \
php${PHP_VERSION}-sodium \
php${PHP_VERSION}-xmlreader \
php${PHP_VERSION}-bcmath \
php${PHP_VERSION}-bz2 \
php${PHP_VERSION}-ctype \
php${PHP_VERSION}-curl \
php${PHP_VERSION}-dom \
php${PHP_VERSION}-exif \
php${PHP_VERSION}-fileinfo \
php${PHP_VERSION}-ftp \
php${PHP_VERSION}-iconv \
php${PHP_VERSION}-ldap \
php${PHP_VERSION}-pcntl \
php${PHP_VERSION}-phar \
php${PHP_VERSION}-session \
php${PHP_VERSION}-shmop \
php${PHP_VERSION}-sockets \
php${PHP_VERSION}-sodium \
php${PHP_VERSION}-sqlite3 \
php${PHP_VERSION}-sysvmsg \
php${PHP_VERSION}-sysvsem \
php${PHP_VERSION}-sysvshm \
php${PHP_VERSION}-tokenizer \
php${PHP_VERSION}-xml \
php${PHP_VERSION}-xmlwriter \
php${PHP_VERSION}-xsl \
php${PHP_VERSION}-zip \
php${PHP_VERSION}-zlib \
#php${PHP_VERSION}-pecl-oauth \ doesn't exist in Alpine 3.17
php${PHP_VERSION}-simplexml \
php${PHP_VERSION}-pecl-igbinary \
# Untrusted?
&& apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing/ --allow-untrusted php${PHP_VERSION}-pecl-xmlrpc \
&& apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/ --allow-untrusted php${PHP_VERSION}-pecl-apcu \
&& if [ ! -L /usr/bin/php ] && [ ! -e /usr/bin/php ]; then ln -s /usr/bin/php${PHP_VERSION} /usr/bin/php; fi
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" && \
php composer-setup.php %% \
php -r "unlink('composer-setup.php');"
# Copy PHP & nginx service script
COPY root/ /