@@ -54,6 +54,11 @@ RUN set -eux \
54
54
&& sed -i -e "s/;owner = www-data/owner = ${USER}/g" /usr/local/etc/php-fpm.d/www.conf \
55
55
&& sed -i -e "s/;user = www-data/user = ${USER}/g" /usr/local/etc/php-fpm.d/www.conf \
56
56
&& sed -i -e "s/;group = www-data/group = ${GROUP}/g" /usr/local/etc/php-fpm.d/www.conf \
57
+ # Load healthcheck script \
58
+ && curl -o /usr/local/bin/php-fpm-healthcheck \
59
+ https://raw.githubusercontent.com/renatomefi/php-fpm-healthcheck/master/php-fpm-healthcheck \
60
+ && chown "${USER}" :"${GROUP}" /usr/local/bin/php-fpm-healthcheck \
61
+ && chmod 0770 /usr/local/bin/php-fpm-healthcheck \
57
62
# Set correct pid file location and permissions \
58
63
&& mkdir -p /run/php \
59
64
&& chown "${USER}" :"${GROUP}" /run/php \
@@ -62,11 +67,14 @@ RUN set -eux \
62
67
&& apt-get autoremove --purge -y \
63
68
&& apt-get autoclean -y \
64
69
&& apt-get clean -y \
65
- && rm -rf /tmp/* /var/tmp/* /srv /root/.composer /usr/bin/composer /tmp/phalcon.so \
70
+ && rm -rf /tmp/* /var/tmp/* \
66
71
&& find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \
67
72
&& find /var/cache -type f -delete \
68
73
&& find /var/log -type f -delete
69
74
75
+ HEALTHCHECK --interval=5s --timeout=1s \
76
+ CMD php-fpm-healthcheck || exit 1
77
+
70
78
FROM base AS dev
71
79
72
80
# This part prepares a dev environment to compile phalcon from zephir
@@ -81,9 +89,12 @@ SHELL [ "/bin/bash", "-o", "pipefail", "-c" ]
81
89
RUN set -eux \
82
90
&& apt-get update \
83
91
&& apt-get install -yq --no-install-recommends zip=3.* unzip=6.* \
84
- && rm -rf /srv/vendor \
85
92
&& echo 'memory_limit = -1' > "$(php-config --ini-dir)/90-memory.ini" \
86
- && install-php-extensions zephir_parser
93
+ && install-php-extensions zephir_parser \
94
+ # Cleanup
95
+ && apt-get autoclean -y \
96
+ && apt-get clean -y \
97
+ && rm -rf /tmp/* /var/tmp/*
87
98
88
99
FROM dev AS phalcon
89
100
@@ -93,9 +104,11 @@ FROM dev AS phalcon
93
104
COPY ./ /srv
94
105
95
106
RUN set -eux \
107
+ && rm -rf /srv/vendor \
96
108
&& composer global require phalcon/zephir:dev-development \
97
109
&& /root/.composer/vendor/bin/zephir fullclean \
98
- && /root/.composer/vendor/bin/zephir build
110
+ && /root/.composer/vendor/bin/zephir build \
111
+ && cat compile-errors.log
99
112
100
113
FROM base AS prod
101
114
@@ -122,10 +135,17 @@ SHELL [ "/bin/bash", "-o", "pipefail", "-c" ]
122
135
123
136
RUN set -eux \
124
137
# Install phalcon \
125
- && cp /tmp/phalcon.so "$(php-config --extension-dir)/phalcon.so" \
138
+ && mv /tmp/phalcon.so "$(php-config --extension-dir)/phalcon.so" \
126
139
&& echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/70-phalcon.ini \
127
140
# Cleanup
128
- && rm -rf /tmp/* /var/tmp/* /srv /root/.composer /usr/bin/composer /tmp/phalcon.so
141
+ && rm -rf /tmp/* /var/tmp/* /srv /root/.composer /usr/bin/composer \
142
+ && apt-get autoremove --purge -y curl \
143
+ && apt-get autoclean -y \
144
+ && apt-get clean -y \
145
+ && rm -rf /tmp/* /var/tmp/* \
146
+ && find /var/cache/apt/archives /var/lib/apt/lists -not -name lock -type f -delete \
147
+ && find /var/cache -type f -delete \
148
+ && find /var/log -type f -delete
129
149
130
150
WORKDIR /app
131
151
0 commit comments