-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
72 lines (57 loc) · 2.29 KB
/
Dockerfile
File metadata and controls
72 lines (57 loc) · 2.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
# the different stages of this Dockerfile are meant to be built into separate images
# https://docs.docker.com/develop/develop-images/multistage-build/#stop-at-a-specific-build-stage
# https://docs.docker.com/compose/compose-file/#target
# https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact
FROM php:8.5.3-fpm-alpine as stage
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
ENV COMPOSER_ALLOW_SUPERUSER=1
ENV PATH="${PATH}:/root/.composer/vendor/bin"
RUN set -eux \
&& apk add --no-cache \
acl fcgi file gettext git nano curl \
&& apk add --no-cache --virtual .build-deps \
$PHPIZE_DEPS icu-dev libzip-dev zlib-dev \
\
&& docker-php-ext-configure zip \
&& docker-php-ext-install -j$(nproc) intl zip \
&& docker-php-ext-enable opcache \
\
&& runDeps="$( \
scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \
| tr ',' '\n' \
| sort -u \
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
)" \
&& apk add --no-cache --virtual .pgsql-deps \
$runDeps postgresql-dev so:libpq.so.5 \
&& docker-php-ext-install -j$(nproc) pdo_pgsql \
\
&& apk add oniguruma-dev \
&& docker-php-ext-install mbstring \
\
&& apk add --repository https://dl-3.alpinelinux.org/alpine/edge/community \
rabbitmq-c-dev \
&& pecl install amqp-1.11.0 \
&& docker-php-ext-enable amqp \
&& apk del .build-deps \
&& pecl clear-cache \
&& rm -rf /tmp/pear \
&& docker-php-source delete \
&& rm -rf /var/cache/apk/*
RUN ln -s $PHP_INI_DIR/php.ini-development $PHP_INI_DIR/php.ini
WORKDIR /app
COPY docker/prod/php/conf.d/ $PHP_INI_DIR/conf.d/
COPY docker/prod/php/php-fpm.d/ /usr/local/etc/php-fpm.d/
COPY composer.json composer.lock* ./
RUN set -eux \
&& composer install --no-plugins --no-scripts --prefer-dist \
&& composer clear-cache
COPY ./ ./
RUN set -eux \
&& composer dump-autoload --classmap-authoritative \
&& composer run-script --no-dev post-install-cmd
HEALTHCHECK --interval=30s --timeout=5s --start-period=1s \
CMD REQUEST_METHOD=GET SCRIPT_NAME=/ping SCRIPT_FILENAME=/ping cgi-fcgi -bind -connect 127.0.0.1:9000
RUN chmod 0555 ./docker/docker-entrypoint.sh
ENTRYPOINT ["docker/docker-entrypoint.sh"]
CMD ["php-fpm"]