-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathDockerfile
More file actions
99 lines (92 loc) · 3.29 KB
/
Copy pathDockerfile
File metadata and controls
99 lines (92 loc) · 3.29 KB
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
97
98
99
FROM alpine:edge
ARG COMPOSER_HASH
ARG DRUSH_VERSION
ARG BUILD_DATE
ARG VCS_REF
LABEL org.label-schema.build-date=$BUILD_DATE \
org.label-schema.vcs-ref=$VCS_REF \
org.label-schema.schema-version="1.0" \
org.label-schema.name="docker-php" \
org.label-schema.description="PHP 8.5 Alpine for Drupal - git, composer, drush 8, sqlite, patch" \
org.label-schema.vcs-url="https://github.com/skilld-labs/docker-php" \
maintainer="Andy Postnikov <andypost@ya.ru>"
ENV PHPRUN_DEPS \
curl \
git \
make \
mariadb-client \
openssh-client \
patch \
rsync \
sqlite
RUN set -e \
&& apk add '!usr-merge-nag' \
&& apk --update upgrade \
&& echo 'https://dl-cdn.alpinelinux.org/alpine/edge/testing' >> /etc/apk/repositories \
&& apk add --upgrade \
php85 \
php85-pecl-apcu \
php85-pecl-brotli \
php85-pecl-igbinary \
php85-pecl-uploadprogress \
php85-pecl-xdebug \
php85-bcmath \
php85-ctype \
php85-curl \
php85-dom \
php85-fileinfo \
php85-gd \
php85-gmp \
php85-iconv \
php85-mbstring \
php85-openssl \
php85-pcntl \
php85-pdo_mysql \
php85-pdo_sqlite \
php85-phar \
php85-session \
php85-simplexml \
php85-sqlite3 \
php85-tokenizer \
php85-xml \
php85-xmlreader \
php85-xmlwriter \
php85-zip \
$PHPRUN_DEPS \
&& ln -fs php85 /usr/bin/php \
# build extra extensions
# && apk add --virtual .php-build \
# php85-dev php85-pear make gcc g++ \
# && sed -ie 's/-n//g' /usr/bin/pecl83 \
# && CFLAGS="-Os -fomit-frame-pointer -g -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fvisibility=hidden -Wall -Wno-strict-aliasing" \
# CPPFLAGS="$CFLAGS" LDFLAGS="-Wl,-O1 -Wl,--hash-style=both -pie" \
# pecl83 install redis \
# && echo 'extension=redis' > /etc/php85/conf.d/redis.ini \
# && echo 'xhprof.output_dir=/tmp' >> /etc/php85/conf.d/xhprof.ini \
# && strip /usr/lib/php85/modules/redis.so \
# && wget https://github.com/xdebug/xdebug/archive/master.zip && unzip master.zip && rm master.zip \
# && cd xdebug-master && phpize83 && ./configure --with-php-config=php-config83 \
# && CFLAGS="-Os -fomit-frame-pointer -g -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fvisibility=hidden -Wall -Wno-strict-aliasing" \
# CPPFLAGS="$CFLAGS" LDFLAGS="-Wl,-O1 -Wl,--hash-style=both -pie" \
# pecl83 install xdebug-3.0.0 \
# make install \
# && cd .. && rm -rf xdebug-master \
# && echo ';zend_extension=xdebug' > /etc/php85/conf.d/xdebug.ini \
# && strip /usr/lib/php85/modules/xdebug.so \
# clean-up
# && apk del --no-network .php-build \
# && rm -fr /tmp/pear /usr/include /usr/share/pear \
&& php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \
&& php -r "if (hash_file('SHA384', 'composer-setup.php') === getenv('COMPOSER_HASH')) { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" \
&& php composer-setup.php \
--install-dir=/usr/bin \
--filename=composer2 \
--2 \
&& ln -s composer2 /usr/bin/composer \
&& php -r "unlink('composer-setup.php');" \
&& php -r "copy('https://github.com/drush-ops/drush/releases/download/$DRUSH_VERSION/drush.phar', '/usr/bin/drush');" \
&& chmod +x /usr/bin/drush && /usr/bin/drush version && rm -fr /root/.drush \
&& rm -fr /var/cache/apk/*
COPY php.ini /etc/php85/conf.d/xx-drupal.ini
WORKDIR /srv
CMD ["php", "-t", "/srv", "-S", "0.0.0.0:80"]