|
1 |
| -ARG FROM=webdevops/php-nginx-dev:8.0 |
2 |
| -FROM $FROM |
3 |
| - |
4 |
| -ENV XHPROF_VERSION=5.0.4 |
5 |
| - |
6 |
| -# Install additional software |
| 1 | +ARG FROM=webdevops/php-nginx-dev:8.2 |
| 2 | +ARG DIST_ADDON= |
| 3 | +FROM $FROM as base-alpine |
| 4 | +# Install additional software Alpine: |
| 5 | +RUN apk add --no-cache sudo vim nano less tree bash-completion mariadb-client iputils sshpass gdb tzdata findmnt jq docker-cli && \ |
| 6 | + echo "application ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers |
| 7 | + |
| 8 | +FROM $FROM as base |
| 9 | +# Install additional software Debian: |
7 | 10 | RUN apt-get update && \
|
8 |
| - apt-get install -y sudo vim nano less tree bash-completion mariadb-client iputils-ping sshpass gdb exa && \ |
| 11 | + apt-get install -y sudo vim nano less tree bash-completion mariadb-client iputils-ping sshpass gdb jq && \ |
9 | 12 | usermod -aG sudo application && \
|
10 | 13 | echo "application ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers && \
|
11 | 14 | curl -fsSL https://get.docker.com/ | sh && \
|
12 | 15 | rm -rf /var/lib/apt/lists/*
|
13 | 16 |
|
14 |
| -# Install XHProf |
15 |
| -COPY profiler.php /opt/docker/profiler.php |
16 |
| - |
17 |
| -RUN cd /tmp && \ |
18 |
| - wget https://github.com/tideways/php-xhprof-extension/archive/v${XHPROF_VERSION}.zip && \ |
19 |
| - unzip v${XHPROF_VERSION}.zip && \ |
20 |
| - cd php-xhprof-extension-${XHPROF_VERSION} && \ |
21 |
| - phpize && \ |
22 |
| - ./configure && \ |
23 |
| - make && \ |
24 |
| - make install && \ |
25 |
| - cd / && \ |
26 |
| - rm -rf /tmp/php-xhprof-extension-${XHPROF_VERSION} && \ |
27 |
| - echo "extension=tideways_xhprof.so" >> /opt/docker/etc/php/php.ini && \ |
28 |
| - echo "auto_prepend_file=/opt/docker/profiler.php" >> /opt/docker/etc/php/php.ini |
| 17 | +FROM base${DIST_ADDON} |
29 | 18 |
|
30 |
| -RUN pecl install pcov && \ |
31 |
| - docker-php-ext-enable pcov mongodb && \ |
32 |
| - echo "pcov.enabled=0" >> /usr/local/etc/php/conf.d/docker-php-ext-pcov.ini && \ |
33 |
| - echo "pcov.exclude='~vendor~'" >> /usr/local/etc/php/conf.d/docker-php-ext-pcov.ini |
| 19 | +COPY entrypoint.d/* /opt/docker/provision/entrypoint.d/ |
| 20 | +COPY profiler.php /opt/docker/profiler.php |
| 21 | +COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/bin/ |
| 22 | +RUN install-php-extensions @fix_letsencrypt xhprof mongodb pcov && \ |
| 23 | + echo "auto_prepend_file=/opt/docker/profiler.php" >> /opt/docker/etc/php/php.ini && \ |
| 24 | + echo "pcov.enabled=0" >> /usr/local/etc/php/conf.d/docker-php-ext-pcov.ini && \ |
| 25 | + echo "pcov.exclude='~vendor~'" >> /usr/local/etc/php/conf.d/docker-php-ext-pcov.ini && \ |
| 26 | + composer self-update --clean-backups && \ |
| 27 | + php -r "version_compare(PHP_VERSION, '7.2', '>=') && print_r(exec('composer completion bash > /etc/bash_completion.d/composer'));" && \ |
| 28 | + if [ -f /etc/apache2/envvars ]; then \ |
| 29 | + sed -i 's/export APACHE_RUN_USER=www-data/export APACHE_RUN_USER=application/g' /etc/apache2/envvars && \ |
| 30 | + sed -i 's/export APACHE_RUN_GROUP=www-data/export APACHE_RUN_GROUP=application/g' /etc/apache2/envvars ; \ |
| 31 | + fi && \ |
| 32 | + if [ -f /etc/nginx/nginx.conf ]; then sed -i 's/user www-data;/user application application;/g' /etc/nginx/nginx.conf ; fi |
34 | 33 |
|
35 |
| -RUN composer self-update --clean-backups |
36 |
| -RUN php -r "version_compare(PHP_VERSION, '7.2', '>=') && print_r(exec('composer completion bash > /etc/bash_completion.d/composer'));" |
37 | 34 |
|
38 | 35 | USER application
|
39 |
| -RUN composer global require davidrjonas/composer-lock-diff perftools/xhgui-collector alcaeus/mongo-php-adapter perftools/php-profiler && \ |
40 |
| - composer clear |
41 | 36 |
|
42 |
| -# add .additional_bashrc.sh |
43 | 37 | COPY bin/* /usr/local/bin/
|
44 | 38 | COPY .additional_bashrc.sh /home/application/.additional_bashrc.sh
|
45 | 39 | COPY .vimrc /home/application/.vimrc
|
46 | 40 | COPY .vimrc /root/.vimrc
|
47 | 41 | COPY apache.conf /opt/docker/etc/httpd/vhost.common.d/apache.conf
|
48 |
| -RUN echo "source ~/.additional_bashrc.sh" >> ~/.bashrc |
| 42 | + |
| 43 | +RUN composer global require davidrjonas/composer-lock-diff perftools/xhgui-collector alcaeus/mongo-php-adapter perftools/php-profiler && \ |
| 44 | + composer clear && \ |
| 45 | + echo "source ~/.additional_bashrc.sh" >> ~/.bashrc && \ |
| 46 | + curl -L https://raw.github.com/git/git/master/contrib/completion/git-prompt.sh > ~/.bash_git |
49 | 47 |
|
50 | 48 | USER root
|
51 | 49 |
|
52 | 50 | ENV \
|
53 | 51 | COMPOSER_CACHE_DIR=/home/application/.composer/cache \
|
54 | 52 | POSTFIX_RELAYHOST="[global-mail]:1025" \
|
55 |
| - PHP_DISMOD="ioncube" \ |
| 53 | + PHP_DISMOD="ioncube,tideways" \ |
56 | 54 | PHP_DISPLAY_ERRORS="1" \
|
57 | 55 | PHP_MEMORY_LIMIT="-1" \
|
58 | 56 | XHGUI_MONGO_URI="global-xhgui:27017" \
|
59 | 57 | XHGUI_PROFILING="enabled" \
|
60 | 58 | TZ=Europe/Berlin
|
61 | 59 |
|
62 |
| -COPY entrypoint.d/* /opt/docker/provision/entrypoint.d/ |
63 |
| - |
64 |
| -# set apache user group to application: |
65 |
| -RUN if [ -f /etc/apache2/envvars ]; then sed -i 's/export APACHE_RUN_USER=www-data/export APACHE_RUN_USER=application/g' /etc/apache2/envvars ; fi |
66 |
| -RUN if [ -f /etc/apache2/envvars ]; then sed -i 's/export APACHE_RUN_GROUP=www-data/export APACHE_RUN_GROUP=application/g' /etc/apache2/envvars ; fi |
67 |
| -# set nginx user group to application: |
68 |
| -RUN if [ -f /etc/nginx/nginx.conf ]; then sed -i 's/user www-data;/user application application;/g' /etc/nginx/nginx.conf ; fi |
69 |
| - |
70 |
| -# https://stackoverflow.com/questions/52998331/imagemagick-security-policy-pdf-blocking-conversion#comment110879511_59193253 |
71 |
| -RUN sed -i '/disable ghostscript format types/,+6d' /etc/ImageMagick-6/policy.xml |
72 |
| - |
73 | 60 | WORKDIR /app
|
0 commit comments