1
1
FROM alpine:3.20
2
2
3
+ ARG PHP=php83
3
4
ARG BUILD_DATE
4
5
ARG VCS_REF
5
6
@@ -9,44 +10,42 @@ LABEL org.label-schema.build-date=$BUILD_DATE \
9
10
org.label-schema.name="docker-phpcs-drupal" \
10
11
org.label-schema.description="PHP codesniffer for Drupal - phpcs & phpcbf" \
11
12
org.label-schema.vcs-url="https://github.com/skilld-labs/docker-phpcs-drupal" \
12
- maintainer="Andriy Yun , Andy Postnikov , Sergey Orlov"
13
+ maintainer="Andriy Yun, Andy Postnikov, Sergey Orlov"
13
14
14
15
RUN set -e \
15
- && apk add --no -cache \
16
+ && apk upgrade --update -cache -a && apk add \
16
17
curl \
17
18
git \
18
19
patch \
19
- php83 \
20
- php83 -apcu \
21
- php83 -ctype \
22
- php83 -json \
23
- php83 -mbstring \
24
- php83 -opcache \
25
- php83 -openssl \
26
- php83 -phar \
27
- php83 -simplexml \
28
- php83 -tokenizer \
29
- php83 -xmlwriter \
30
- php83-zlib;
31
-
32
- RUN ln -s $(which php8 ) /usr/local /bin/php \
20
+ ${PHP} \
21
+ ${PHP} -apcu \
22
+ ${PHP} -ctype \
23
+ ${PHP} -json \
24
+ ${PHP} -mbstring \
25
+ ${PHP} -opcache \
26
+ ${PHP} -openssl \
27
+ ${PHP} -phar \
28
+ ${PHP} -simplexml \
29
+ ${PHP} -tokenizer \
30
+ ${PHP} -xmlwriter \
31
+ ${PHP}-zip \
32
+ && rm -fr /var/cache/apk/* \
33
+ && ln -fs $(which ${PHP} ) /usr/bin/php \
33
34
&& curl -sS https://getcomposer.org/installer | php -- --filename=composer --install-dir=/usr/bin \
34
35
&& composer global config --no-plugins allow-plugins.dealerdirect/phpcodesniffer-composer-installer true \
35
- && composer global require drupal/coder --update-no-dev --no-suggest --prefer-dist ^8.3 \
36
- && composer global require squizlabs/php_codesniffer \
36
+ && composer global require drupal/coder -o --apcu-autoloader --update-no-dev --no-suggest --prefer-dist ^8.3 \
37
37
&& ln -s /root/.composer/vendor/bin/phpcs /usr/bin/phpcs \
38
38
&& ln -s /root/.composer/vendor/bin/phpcbf /usr/bin/phpcbf \
39
- # Clone coder sniffs into the codesniffer sniffs directory.
39
+ # Link coder sniffs into the codesniffer sniffs directory.
40
40
&& ln -s /root/.composer/vendor/drupal/coder/coder_sniffer/Drupal /root/.composer/vendor/squizlabs/php_codesniffer/src/Standards/Drupal \
41
41
&& ln -s /root/.composer/vendor/drupal/coder/coder_sniffer/DrupalPractice /root/.composer/vendor/squizlabs/php_codesniffer/src/Standards/DrupalPractice \
42
42
# Removing packages which needed only during the installation.
43
- && apk del --no-cache git \
43
+ && apk del --no-network --purge git \
44
44
# Clear composer cache - it will just take space.
45
45
&& rm -rf /root/.composer/cache/* \
46
- # Sniffs could take much time, we will set unlimited time for PHP execution
47
- && sed -i "s/.*memory_limit = .*/memory_limit = -1/" /etc/php83 /php.ini
46
+ # Sniffs could take memory, set unlimited to be customized by end-user
47
+ && sed -i "s/.*memory_limit = .*/memory_limit = -1/" /etc/${PHP} /php.ini
48
48
49
- VOLUME /work
50
49
WORKDIR /work
51
50
52
51
CMD ["phpcs" , "--standard=Drupal,DrupalPractice" , "." ]
0 commit comments