Repository navigation
Expand file tree
/
Copy pathDockerfile
More file actions
executable file
·82 lines (69 loc) · 2.56 KB
/
Copy pathDockerfile
File metadata and controls
executable file
·82 lines (69 loc) · 2.56 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
FROM php:8.5-cli-alpine3.24
LABEL com.fabiojanio.docker.authors.name="Fábio Jânio Lima Ferreira"
LABEL com.fabiojanio.docker.authors.email="[email protected]"
##----------------------------------##
## Instalações e configurações base ##
##----------------------------------##
COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer
RUN set -eux; \
ln -s /var/www/html /app && \
apk add --no-cache --virtual .fetch-deps tzdata && \
cp /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime && \
echo "America/Sao_Paulo" > /etc/timezone && \
apk del --no-network .fetch-deps
##------------------##
## Extensões do PHP ##
##------------------##
# Extensões nativas, extensões PECL (xdebug e redis) e suas dependências.
# O OPcache já vem embutido e habilitado no PHP 8.5.
RUN set -eux; \
apk add --no-cache --virtual .build-deps \
$PHPIZE_DEPS \
linux-headers \
freetype-dev \
libjpeg-turbo-dev \
libpng-dev \
libwebp-dev \
icu-dev \
libpq-dev \
libzip-dev && \
docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp && \
docker-php-ext-install -j$(nproc) \
bcmath \
exif \
gd \
intl \
pcntl \
pdo_mysql \
pdo_pgsql \
zip && \
pecl install xdebug redis && \
docker-php-ext-enable xdebug redis && \
rm -rf /tmp/pear ~/.pearrc && \
runDeps="$( \
scanelf --needed --nobanner --format '%n#p' --recursive /usr/local \
| tr ',' '\n' \
| sort -u \
| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
)" && \
apk add --no-cache $runDeps icu-data-full && \
apk del --no-network .build-deps
##----------------------##
## Configurações do PHP ##
##----------------------##
COPY ./config/php.ini /usr/local/etc/php/
# O PHP não usa o /etc/localtime, o timezone precisa ser definido no ini
RUN echo "date.timezone=America/Sao_Paulo" > /usr/local/etc/php/conf.d/zz-timezone.ini
# Configuração do Xdebug: desligado por padrão, ative com XDEBUG_MODE (ex.: debug, coverage)
RUN { \
echo 'xdebug.mode="off"'; \
echo "xdebug.start_with_request=yes"; \
echo "xdebug.client_host=host.docker.internal"; \
echo "xdebug.client_port=9003"; \
echo "xdebug.idekey=DOCKER"; \
echo "xdebug.log=/dev/stdout"; \
echo "xdebug.log_level=0"; \
} >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
WORKDIR /app
EXPOSE 80
CMD ["php", "-S", "0.0.0.0:80", "-t", "/app"]