@lando/drupal 1.13.0 → 1.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/.eslintignore +5 -0
  2. package/CHANGELOG.md +19 -0
  3. package/README.md +1 -1
  4. package/builders/_drupaly.js +18 -0
  5. package/netlify.toml +1 -1
  6. package/node_modules/@lando/mariadb/CHANGELOG.md +4 -0
  7. package/node_modules/@lando/mariadb/builders/mariadb.js +4 -3
  8. package/node_modules/@lando/mariadb/package.json +5 -5
  9. package/node_modules/@lando/php/AGENTS.md +81 -0
  10. package/node_modules/@lando/php/CHANGELOG.md +30 -0
  11. package/node_modules/@lando/php/README.md +4 -1
  12. package/node_modules/@lando/php/builders/php.js +39 -5
  13. package/node_modules/@lando/php/images/5.6-apache/Dockerfile +9 -4
  14. package/node_modules/@lando/php/images/5.6-fpm/Dockerfile +9 -4
  15. package/node_modules/@lando/php/images/7.0-apache/Dockerfile +9 -4
  16. package/node_modules/@lando/php/images/7.0-fpm/Dockerfile +9 -4
  17. package/node_modules/@lando/php/images/7.1-apache/Dockerfile +1 -1
  18. package/node_modules/@lando/php/images/7.1-fpm/Dockerfile +1 -1
  19. package/node_modules/@lando/php/images/7.2-apache/Dockerfile +1 -1
  20. package/node_modules/@lando/php/images/7.2-fpm/Dockerfile +1 -1
  21. package/node_modules/@lando/php/images/7.3-apache/Dockerfile +1 -1
  22. package/node_modules/@lando/php/images/7.3-fpm/Dockerfile +1 -1
  23. package/node_modules/@lando/php/images/7.4-apache/Dockerfile +2 -2
  24. package/node_modules/@lando/php/images/7.4-fpm/Dockerfile +2 -2
  25. package/node_modules/@lando/php/images/8.0-apache/Dockerfile +2 -2
  26. package/node_modules/@lando/php/images/8.0-fpm/Dockerfile +2 -2
  27. package/node_modules/@lando/php/images/8.1-apache/Dockerfile +1 -1
  28. package/node_modules/@lando/php/images/8.1-fpm/Dockerfile +1 -1
  29. package/node_modules/@lando/php/images/8.2-apache/Dockerfile +1 -1
  30. package/node_modules/@lando/php/images/8.2-fpm/Dockerfile +1 -1
  31. package/node_modules/@lando/php/images/8.3-apache/Dockerfile +23 -22
  32. package/node_modules/@lando/php/images/8.3-fpm/Dockerfile +22 -22
  33. package/node_modules/@lando/php/images/8.4-apache/Dockerfile +21 -22
  34. package/node_modules/@lando/php/images/8.4-fpm/Dockerfile +21 -22
  35. package/node_modules/@lando/php/images/8.5-apache/Dockerfile +77 -0
  36. package/node_modules/@lando/php/images/8.5-fpm/Dockerfile +78 -0
  37. package/node_modules/@lando/php/netlify.toml +1 -1
  38. package/node_modules/@lando/php/package.json +5 -5
  39. package/node_modules/@lando/php/scripts/install-db-client.sh +31 -0
  40. package/node_modules/@lando/php/scripts/mariadb-compat-install.sh +42 -0
  41. package/node_modules/@lando/php/scripts/mysql-client-install.sh +67 -0
  42. package/node_modules/@lando/postgres/CHANGELOG.md +4 -0
  43. package/node_modules/@lando/postgres/builders/postgres.js +2 -1
  44. package/node_modules/@lando/postgres/package.json +5 -5
  45. package/package.json +8 -8
@@ -1,41 +1,30 @@
1
- # docker build -t devwithlando/php:8.3-apache-5 .
1
+ # docker build -t devwithlando/php:8.3-apache-7 .
2
2
 
3
- FROM php:8.3-apache-bookworm
3
+ FROM mysql:8.0 AS mysql-client-80
4
+ FROM mysql:8.4 AS mysql-client-84
5
+
6
+ FROM php:8.3-apache-trixie
4
7
 
5
8
  ARG TARGETARCH
6
9
 
7
10
  ADD --chmod=0755 https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
8
11
 
9
- RUN \
10
- # MariaDB client compatibility (https://github.com/lando/php/issues/120)
11
- mkdir -p /etc/apt/keyrings \
12
- && curl -o /etc/apt/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp' \
13
- && echo "deb [signed-by=/etc/apt/keyrings/mariadb-keyring.pgp] https://mirror.mariadb.org/repo/10.11/debian bookworm main" > /etc/apt/sources.list.d/mariadb.list
14
-
15
- # Drupal 11 requires sqlite3 3.45+
16
- ARG SQLITE_VERSION=3.45.1
17
- RUN \
18
- curl -Lo /tmp/sqlite3.deb "https://snapshot.debian.org/archive/debian/20240506T211830Z/pool/main/s/sqlite3/sqlite3_${SQLITE_VERSION}-1_${TARGETARCH}.deb" \
19
- && curl -Lo /tmp/libsqlite3-0.deb "https://snapshot.debian.org/archive/debian/20240506T211830Z/pool/main/s/sqlite3/libsqlite3-0_${SQLITE_VERSION}-1_${TARGETARCH}.deb" \
20
- && curl -Lo /tmp/libsqlite3-dev.deb "https://snapshot.debian.org/archive/debian/20240506T211830Z/pool/main/s/sqlite3/libsqlite3-dev_${SQLITE_VERSION}-1_${TARGETARCH}.deb"
21
-
22
12
  RUN \
23
13
  mkdir -p /usr/share/man/man1 /usr/share/man/man7 \
24
14
  && apt -y update && apt-get install -y \
25
15
  default-mysql-client \
26
- exiftool \
27
- git-core \
16
+ libimage-exiftool-perl \
17
+ git \
28
18
  gnupg2 \
29
19
  imagemagick \
30
- postgresql-client-15 \
20
+ mariadb-client \
21
+ mariadb-client-compat \
22
+ postgresql-client-17 \
31
23
  pv \
32
24
  rsync \
33
25
  ssh \
34
26
  unzip \
35
- wget \
36
- /tmp/sqlite3.deb \
37
- /tmp/libsqlite3-0.deb \
38
- /tmp/libsqlite3-dev.deb
27
+ wget
39
28
 
40
29
  RUN \
41
30
  install-php-extensions @fix_letsencrypt \
@@ -68,6 +57,18 @@ RUN \
68
57
  RUN install-php-extensions xdebug \
69
58
  && rm -f /usr/local/etc/php/conf.d/*xdebug.ini
70
59
 
60
+ # Pre-download MySQL client binaries for version-matched installs
61
+ COPY --from=mysql-client-80 /usr/bin/mysql /usr/local/mysql-client/8.0/mysql
62
+ COPY --from=mysql-client-80 /usr/bin/mysqldump /usr/local/mysql-client/8.0/mysqldump
63
+ COPY --from=mysql-client-80 /usr/bin/mysqladmin /usr/local/mysql-client/8.0/mysqladmin
64
+ COPY --from=mysql-client-84 /usr/bin/mysql /usr/local/mysql-client/8.4/mysql
65
+ COPY --from=mysql-client-84 /usr/bin/mysqldump /usr/local/mysql-client/8.4/mysqldump
66
+ COPY --from=mysql-client-84 /usr/bin/mysqladmin /usr/local/mysql-client/8.4/mysqladmin
67
+
68
+ # Ensure required MySQL client shared libraries are present
69
+ COPY --from=mysql-client-80 /usr/lib64/libmysqlclient.so* /usr/lib/
70
+ COPY --from=mysql-client-84 /usr/lib64/libmysqlclient.so* /usr/lib/
71
+
71
72
  RUN \
72
73
  chsh -s /bin/bash www-data && mkdir -p /var/www/.composer && chown -R www-data:www-data /var/www \
73
74
  && apt-get -y clean \
@@ -1,42 +1,30 @@
1
- # docker build -t devwithlando/php:8.3-fpm-5 .
1
+ # docker build -t devwithlando/php:8.3-fpm-7 .
2
2
 
3
- FROM php:8.3-fpm-bookworm
3
+ FROM mysql:8.0 AS mysql-client-80
4
+ FROM mysql:8.4 AS mysql-client-84
5
+
6
+ FROM php:8.3-fpm-trixie
4
7
 
5
8
  ARG TARGETARCH
6
9
 
7
10
  ADD --chmod=0755 https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
8
11
 
9
- RUN \
10
- # MariaDB client compatibility (https://github.com/lando/php/issues/120)
11
- mkdir -p /etc/apt/keyrings \
12
- && curl -o /etc/apt/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp' \
13
- && echo "deb [signed-by=/etc/apt/keyrings/mariadb-keyring.pgp] https://mirror.mariadb.org/repo/10.11/debian bookworm main" > /etc/apt/sources.list.d/mariadb.list
14
-
15
- # Drupal 11 requires sqlite3 3.45+
16
- ARG SQLITE_VERSION=3.45.1
17
- RUN \
18
- curl -Lo /tmp/sqlite3.deb "https://snapshot.debian.org/archive/debian/20240506T211830Z/pool/main/s/sqlite3/sqlite3_${SQLITE_VERSION}-1_${TARGETARCH}.deb" \
19
- && curl -Lo /tmp/libsqlite3-0.deb "https://snapshot.debian.org/archive/debian/20240506T211830Z/pool/main/s/sqlite3/libsqlite3-0_${SQLITE_VERSION}-1_${TARGETARCH}.deb" \
20
- && curl -Lo /tmp/libsqlite3-dev.deb "https://snapshot.debian.org/archive/debian/20240506T211830Z/pool/main/s/sqlite3/libsqlite3-dev_${SQLITE_VERSION}-1_${TARGETARCH}.deb"
21
-
22
12
  RUN \
23
13
  mkdir -p /usr/share/man/man1 /usr/share/man/man7 \
24
14
  && apt -y update && apt-get install -y \
25
15
  default-mysql-client \
26
- exiftool \
27
- git-core \
16
+ libimage-exiftool-perl \
17
+ git \
28
18
  gnupg2 \
29
19
  imagemagick \
30
20
  mariadb-client \
31
- postgresql-client-15 \
21
+ mariadb-client-compat \
22
+ postgresql-client-17 \
32
23
  pv \
33
24
  rsync \
34
25
  ssh \
35
26
  unzip \
36
- wget \
37
- /tmp/sqlite3.deb \
38
- /tmp/libsqlite3-0.deb \
39
- /tmp/libsqlite3-dev.deb
27
+ wget
40
28
 
41
29
  RUN \
42
30
  install-php-extensions @fix_letsencrypt \
@@ -69,6 +57,18 @@ RUN \
69
57
  RUN install-php-extensions xdebug \
70
58
  && rm -f /usr/local/etc/php/conf.d/*xdebug.ini
71
59
 
60
+ # Pre-download MySQL client binaries for version-matched installs
61
+ COPY --from=mysql-client-80 /usr/bin/mysql /usr/local/mysql-client/8.0/mysql
62
+ COPY --from=mysql-client-80 /usr/bin/mysqldump /usr/local/mysql-client/8.0/mysqldump
63
+ COPY --from=mysql-client-80 /usr/bin/mysqladmin /usr/local/mysql-client/8.0/mysqladmin
64
+ COPY --from=mysql-client-84 /usr/bin/mysql /usr/local/mysql-client/8.4/mysql
65
+ COPY --from=mysql-client-84 /usr/bin/mysqldump /usr/local/mysql-client/8.4/mysqldump
66
+ COPY --from=mysql-client-84 /usr/bin/mysqladmin /usr/local/mysql-client/8.4/mysqladmin
67
+
68
+ # Ensure required MySQL client shared libraries are present
69
+ COPY --from=mysql-client-80 /usr/lib64/libmysqlclient.so* /usr/lib/
70
+ COPY --from=mysql-client-84 /usr/lib64/libmysqlclient.so* /usr/lib/
71
+
72
72
  RUN \
73
73
  chsh -s /bin/bash www-data && mkdir -p /var/www/.composer && chown -R www-data:www-data /var/www \
74
74
  && apt-get -y clean \
@@ -1,43 +1,30 @@
1
- # docker build -t devwithlando/php:8.4-apache-5 .
1
+ # docker build -t devwithlando/php:8.4-apache-7 .
2
2
 
3
- FROM php:8.4-apache-bookworm
3
+ FROM mysql:8.0 AS mysql-client-80
4
+ FROM mysql:8.4 AS mysql-client-84
5
+
6
+ FROM php:8.4-apache-trixie
4
7
 
5
8
  ARG TARGETARCH
6
9
 
7
10
  ADD --chmod=0755 https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
8
11
 
9
- RUN \
10
- # MariaDB client compatibility (https://github.com/lando/php/issues/120)
11
- mkdir -p /etc/apt/keyrings \
12
- && curl -o /etc/apt/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp' \
13
- && echo "deb [signed-by=/etc/apt/keyrings/mariadb-keyring.pgp] https://mirror.mariadb.org/repo/11.4/debian bookworm main" > /etc/apt/sources.list.d/mariadb.list
14
-
15
- # Drupal 11 requires sqlite3 3.45+
16
- ARG SQLITE_VERSION=3.45.1
17
- RUN \
18
- curl -Lo /tmp/sqlite3.deb "https://snapshot.debian.org/archive/debian/20240506T211830Z/pool/main/s/sqlite3/sqlite3_${SQLITE_VERSION}-1_${TARGETARCH}.deb" \
19
- && curl -Lo /tmp/libsqlite3-0.deb "https://snapshot.debian.org/archive/debian/20240506T211830Z/pool/main/s/sqlite3/libsqlite3-0_${SQLITE_VERSION}-1_${TARGETARCH}.deb" \
20
- && curl -Lo /tmp/libsqlite3-dev.deb "https://snapshot.debian.org/archive/debian/20240506T211830Z/pool/main/s/sqlite3/libsqlite3-dev_${SQLITE_VERSION}-1_${TARGETARCH}.deb"
21
-
22
12
  RUN \
23
13
  mkdir -p /usr/share/man/man1 /usr/share/man/man7 \
24
14
  && apt -y update && apt-get install -y \
25
15
  default-mysql-client \
26
- exiftool \
27
- git-core \
16
+ libimage-exiftool-perl \
17
+ git \
28
18
  gnupg2 \
29
19
  imagemagick \
30
20
  mariadb-client \
31
21
  mariadb-client-compat \
32
- postgresql-client-15 \
22
+ postgresql-client-17 \
33
23
  pv \
34
24
  rsync \
35
25
  ssh \
36
26
  unzip \
37
- wget \
38
- /tmp/sqlite3.deb \
39
- /tmp/libsqlite3-0.deb \
40
- /tmp/libsqlite3-dev.deb
27
+ wget
41
28
 
42
29
  RUN \
43
30
  install-php-extensions @fix_letsencrypt \
@@ -70,6 +57,18 @@ RUN \
70
57
  RUN install-php-extensions xdebug \
71
58
  && rm -f /usr/local/etc/php/conf.d/*xdebug.ini
72
59
 
60
+ # Pre-download MySQL client binaries for version-matched installs
61
+ COPY --from=mysql-client-80 /usr/bin/mysql /usr/local/mysql-client/8.0/mysql
62
+ COPY --from=mysql-client-80 /usr/bin/mysqldump /usr/local/mysql-client/8.0/mysqldump
63
+ COPY --from=mysql-client-80 /usr/bin/mysqladmin /usr/local/mysql-client/8.0/mysqladmin
64
+ COPY --from=mysql-client-84 /usr/bin/mysql /usr/local/mysql-client/8.4/mysql
65
+ COPY --from=mysql-client-84 /usr/bin/mysqldump /usr/local/mysql-client/8.4/mysqldump
66
+ COPY --from=mysql-client-84 /usr/bin/mysqladmin /usr/local/mysql-client/8.4/mysqladmin
67
+
68
+ # Ensure required MySQL client shared libraries are present
69
+ COPY --from=mysql-client-80 /usr/lib64/libmysqlclient.so* /usr/lib/
70
+ COPY --from=mysql-client-84 /usr/lib64/libmysqlclient.so* /usr/lib/
71
+
73
72
  RUN \
74
73
  chsh -s /bin/bash www-data && mkdir -p /var/www/.composer && chown -R www-data:www-data /var/www \
75
74
  && apt-get -y clean \
@@ -1,44 +1,31 @@
1
- # docker build -t devwithlando/php:8.4-fpm-5 .
1
+ # docker build -t devwithlando/php:8.4-fpm-7 .
2
2
 
3
- FROM php:8.4-fpm-bookworm
3
+ FROM mysql:8.0 AS mysql-client-80
4
+ FROM mysql:8.4 AS mysql-client-84
5
+
6
+ FROM php:8.4-fpm-trixie
4
7
 
5
8
  ARG TARGETARCH
6
9
 
7
10
  ADD --chmod=0755 https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
8
11
 
9
- RUN \
10
- # MariaDB client compatibility (https://github.com/lando/php/issues/120)
11
- mkdir -p /etc/apt/keyrings \
12
- && curl -o /etc/apt/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp' \
13
- && echo "deb [signed-by=/etc/apt/keyrings/mariadb-keyring.pgp] https://mirror.mariadb.org/repo/11.4/debian bookworm main" > /etc/apt/sources.list.d/mariadb.list
14
-
15
- # Drupal 11 requires sqlite3 3.45+
16
- ARG SQLITE_VERSION=3.45.1
17
- RUN \
18
- curl -Lo /tmp/sqlite3.deb "https://snapshot.debian.org/archive/debian/20240506T211830Z/pool/main/s/sqlite3/sqlite3_${SQLITE_VERSION}-1_${TARGETARCH}.deb" \
19
- && curl -Lo /tmp/libsqlite3-0.deb "https://snapshot.debian.org/archive/debian/20240506T211830Z/pool/main/s/sqlite3/libsqlite3-0_${SQLITE_VERSION}-1_${TARGETARCH}.deb" \
20
- && curl -Lo /tmp/libsqlite3-dev.deb "https://snapshot.debian.org/archive/debian/20240506T211830Z/pool/main/s/sqlite3/libsqlite3-dev_${SQLITE_VERSION}-1_${TARGETARCH}.deb"
21
-
22
12
  RUN \
23
13
  mkdir -p /usr/share/man/man1 /usr/share/man/man7 \
24
14
  && apt -y update && apt-get install -y \
25
15
  bzip2 \
26
16
  default-mysql-client \
27
- exiftool \
28
- git-core \
17
+ libimage-exiftool-perl \
18
+ git \
29
19
  gnupg2 \
30
20
  imagemagick \
31
21
  mariadb-client \
32
22
  mariadb-client-compat \
33
- postgresql-client-15 \
23
+ postgresql-client-17 \
34
24
  pv \
35
25
  rsync \
36
26
  ssh \
37
27
  unzip \
38
- wget \
39
- /tmp/sqlite3.deb \
40
- /tmp/libsqlite3-0.deb \
41
- /tmp/libsqlite3-dev.deb
28
+ wget
42
29
 
43
30
  RUN \
44
31
  install-php-extensions @fix_letsencrypt \
@@ -71,6 +58,18 @@ RUN \
71
58
  RUN install-php-extensions xdebug \
72
59
  && rm -f /usr/local/etc/php/conf.d/*xdebug.ini
73
60
 
61
+ # Pre-download MySQL client binaries for version-matched installs
62
+ COPY --from=mysql-client-80 /usr/bin/mysql /usr/local/mysql-client/8.0/mysql
63
+ COPY --from=mysql-client-80 /usr/bin/mysqldump /usr/local/mysql-client/8.0/mysqldump
64
+ COPY --from=mysql-client-80 /usr/bin/mysqladmin /usr/local/mysql-client/8.0/mysqladmin
65
+ COPY --from=mysql-client-84 /usr/bin/mysql /usr/local/mysql-client/8.4/mysql
66
+ COPY --from=mysql-client-84 /usr/bin/mysqldump /usr/local/mysql-client/8.4/mysqldump
67
+ COPY --from=mysql-client-84 /usr/bin/mysqladmin /usr/local/mysql-client/8.4/mysqladmin
68
+
69
+ # Ensure required MySQL client shared libraries are present
70
+ COPY --from=mysql-client-80 /usr/lib64/libmysqlclient.so* /usr/lib/
71
+ COPY --from=mysql-client-84 /usr/lib64/libmysqlclient.so* /usr/lib/
72
+
74
73
  RUN \
75
74
  chsh -s /bin/bash www-data && mkdir -p /var/www/.composer && chown -R www-data:www-data /var/www \
76
75
  && apt-get -y clean \
@@ -0,0 +1,77 @@
1
+ # docker buildx build -t devwithlando/php:8.5-apache-7 .
2
+
3
+ FROM mysql:8.0 AS mysql-client-80
4
+ FROM mysql:8.4 AS mysql-client-84
5
+
6
+ FROM php:8.5-apache-trixie
7
+
8
+ ARG TARGETARCH
9
+
10
+ ADD --chmod=0755 https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
11
+
12
+ RUN \
13
+ mkdir -p /usr/share/man/man1 /usr/share/man/man7 \
14
+ && apt -y update && apt-get install -y \
15
+ default-mysql-client \
16
+ libimage-exiftool-perl \
17
+ git \
18
+ gnupg2 \
19
+ imagemagick \
20
+ mariadb-client \
21
+ mariadb-client-compat \
22
+ postgresql-client-17 \
23
+ pv \
24
+ rsync \
25
+ ssh \
26
+ unzip \
27
+ wget
28
+
29
+ RUN \
30
+ install-php-extensions @fix_letsencrypt \
31
+ && install-php-extensions apcu \
32
+ && install-php-extensions bcmath \
33
+ && install-php-extensions bz2 \
34
+ && install-php-extensions calendar \
35
+ && install-php-extensions exif \
36
+ && install-php-extensions gd \
37
+ && install-php-extensions gettext \
38
+ && install-php-extensions imagick/imagick@master \
39
+ && install-php-extensions imap \
40
+ && install-php-extensions intl \
41
+ && install-php-extensions ldap \
42
+ && install-php-extensions mbstring \
43
+ && install-php-extensions memcached \
44
+ && install-php-extensions mysqli \
45
+ && install-php-extensions oauth \
46
+ && install-php-extensions opcache \
47
+ && install-php-extensions pcntl \
48
+ && install-php-extensions pdo \
49
+ && install-php-extensions pdo_mysql \
50
+ && install-php-extensions pdo_pgsql \
51
+ && install-php-extensions redis \
52
+ && install-php-extensions soap \
53
+ && install-php-extensions xhprof \
54
+ && install-php-extensions zip
55
+
56
+ # Install xdebug but disable it by default
57
+ RUN install-php-extensions xdebug/xdebug@master \
58
+ && rm -f /usr/local/etc/php/conf.d/*xdebug.ini
59
+
60
+ # Pre-download MySQL client binaries for version-matched installs
61
+ COPY --from=mysql-client-80 /usr/bin/mysql /usr/local/mysql-client/8.0/mysql
62
+ COPY --from=mysql-client-80 /usr/bin/mysqldump /usr/local/mysql-client/8.0/mysqldump
63
+ COPY --from=mysql-client-80 /usr/bin/mysqladmin /usr/local/mysql-client/8.0/mysqladmin
64
+ COPY --from=mysql-client-84 /usr/bin/mysql /usr/local/mysql-client/8.4/mysql
65
+ COPY --from=mysql-client-84 /usr/bin/mysqldump /usr/local/mysql-client/8.4/mysqldump
66
+ COPY --from=mysql-client-84 /usr/bin/mysqladmin /usr/local/mysql-client/8.4/mysqladmin
67
+
68
+ # Ensure required MySQL client shared libraries are present
69
+ COPY --from=mysql-client-80 /usr/lib64/libmysqlclient.so* /usr/lib/
70
+ COPY --from=mysql-client-84 /usr/lib64/libmysqlclient.so* /usr/lib/
71
+
72
+ RUN \
73
+ chsh -s /bin/bash www-data && mkdir -p /var/www/.composer && chown -R www-data:www-data /var/www \
74
+ && apt-get -y clean \
75
+ && apt-get -y autoclean \
76
+ && apt-get -y autoremove \
77
+ && rm -rf /var/lib/apt/lists/* && rm -rf && rm -rf /var/lib/cache/* && rm -rf /var/lib/log/* && rm -rf /tmp/*
@@ -0,0 +1,78 @@
1
+ # docker buildx build -t devwithlando/php:8.5-fpm-7 .
2
+
3
+ FROM mysql:8.0 AS mysql-client-80
4
+ FROM mysql:8.4 AS mysql-client-84
5
+
6
+ FROM php:8.5-fpm-trixie
7
+
8
+ ARG TARGETARCH
9
+
10
+ ADD --chmod=0755 https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
11
+
12
+ RUN \
13
+ mkdir -p /usr/share/man/man1 /usr/share/man/man7 \
14
+ && apt -y update && apt-get install -y \
15
+ bzip2 \
16
+ default-mysql-client \
17
+ libimage-exiftool-perl \
18
+ git \
19
+ gnupg2 \
20
+ imagemagick \
21
+ mariadb-client \
22
+ mariadb-client-compat \
23
+ postgresql-client-17 \
24
+ pv \
25
+ rsync \
26
+ ssh \
27
+ unzip \
28
+ wget
29
+
30
+ RUN \
31
+ install-php-extensions @fix_letsencrypt \
32
+ && install-php-extensions apcu \
33
+ && install-php-extensions bcmath \
34
+ && install-php-extensions bz2 \
35
+ && install-php-extensions calendar \
36
+ && install-php-extensions exif \
37
+ && install-php-extensions gd \
38
+ && install-php-extensions gettext \
39
+ && install-php-extensions imagick/imagick@master \
40
+ && install-php-extensions imap \
41
+ && install-php-extensions intl \
42
+ && install-php-extensions ldap \
43
+ && install-php-extensions mbstring \
44
+ && install-php-extensions memcached \
45
+ && install-php-extensions mysqli \
46
+ && install-php-extensions oauth \
47
+ && install-php-extensions opcache \
48
+ && install-php-extensions pcntl \
49
+ && install-php-extensions pdo \
50
+ && install-php-extensions pdo_mysql \
51
+ && install-php-extensions pdo_pgsql \
52
+ && install-php-extensions redis \
53
+ && install-php-extensions soap \
54
+ && install-php-extensions xhprof \
55
+ && install-php-extensions zip
56
+
57
+ # Install xdebug but disable it by default
58
+ RUN install-php-extensions xdebug/xdebug@master \
59
+ && rm -f /usr/local/etc/php/conf.d/*xdebug.ini
60
+
61
+ # Pre-download MySQL client binaries for version-matched installs
62
+ COPY --from=mysql-client-80 /usr/bin/mysql /usr/local/mysql-client/8.0/mysql
63
+ COPY --from=mysql-client-80 /usr/bin/mysqldump /usr/local/mysql-client/8.0/mysqldump
64
+ COPY --from=mysql-client-80 /usr/bin/mysqladmin /usr/local/mysql-client/8.0/mysqladmin
65
+ COPY --from=mysql-client-84 /usr/bin/mysql /usr/local/mysql-client/8.4/mysql
66
+ COPY --from=mysql-client-84 /usr/bin/mysqldump /usr/local/mysql-client/8.4/mysqldump
67
+ COPY --from=mysql-client-84 /usr/bin/mysqladmin /usr/local/mysql-client/8.4/mysqladmin
68
+
69
+ # Ensure required MySQL client shared libraries are present
70
+ COPY --from=mysql-client-80 /usr/lib64/libmysqlclient.so* /usr/lib/
71
+ COPY --from=mysql-client-84 /usr/lib64/libmysqlclient.so* /usr/lib/
72
+
73
+ RUN \
74
+ chsh -s /bin/bash www-data && mkdir -p /var/www/.composer && chown -R www-data:www-data /var/www \
75
+ && apt-get -y clean \
76
+ && apt-get -y autoclean \
77
+ && apt-get -y autoremove \
78
+ && rm -rf /var/lib/apt/lists/* && rm -rf && rm -rf /var/lib/cache/* && rm -rf /var/lib/log/* && rm -rf /tmp/*
@@ -10,7 +10,7 @@
10
10
  [[context.deploy-preview.plugins]]
11
11
  package = "netlify-plugin-checklinks"
12
12
  [context.deploy-preview.plugins.inputs]
13
- todoPatterns = [ "load", "CHANGELOG.html", "/v/", "x.com", "twitter.com", "www.php.net" ]
13
+ todoPatterns = [ "load", "CHANGELOG.html", "/v/", "x.com", "twitter.com", "www.php.net", "hub.docker.com" ]
14
14
  skipPatterns = [ ".rss", ".gif", ".jpg" ]
15
15
  checkExternal = true
16
16
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lando/php",
3
3
  "description": "A Lando plugin that provides a tight integration with PHP.",
4
- "version": "1.8.0",
4
+ "version": "1.11.1",
5
5
  "author": "Mike Pirog @pirog",
6
6
  "license": "MIT",
7
7
  "repository": "lando/php",
@@ -66,9 +66,9 @@
66
66
  "semver"
67
67
  ],
68
68
  "dist": {
69
- "integrity": "sha512-iacB+ZbgZlcZen5zwnsaHCluP9ZpE2hIKzFwQlzMWooXC39LeR5z1Kw6pt0BoC9a9dmmTVoYAMbf/vGwenuwBw==",
70
- "shasum": "a63245f0e3fc8a4af8ce2f62cb383af253787ffd",
71
- "filename": "lando-php-1.8.0.tgz",
72
- "unpackedSize": 3042655
69
+ "integrity": "sha512-YARvLV+LsZ5LloDW2E7r3stkptHPkCtMh7VrEQu7Wa0pNF1N8TAQJlGxIRrWWuVT/6N7mgw+IWgro3CtPlCKsw==",
70
+ "shasum": "74c9af6bc8853760d8ca3a57528658580f99e409",
71
+ "filename": "lando-php-1.11.1.tgz",
72
+ "unpackedSize": 3059346
73
73
  }
74
74
  }
@@ -0,0 +1,31 @@
1
+ #!/bin/bash
2
+ # Install database client matching the detected database type/version
3
+ # Usage: install-db-client.sh <type>:<version>
4
+ # Examples:
5
+ # install-db-client.sh mysql:8.4
6
+ # install-db-client.sh mariadb:11.8
7
+
8
+ set -e
9
+
10
+ DB_CLIENT="${1:-}"
11
+ if [[ -z "$DB_CLIENT" ]]; then
12
+ echo "No database client specified, keeping defaults"
13
+ exit 0
14
+ fi
15
+
16
+ DB_TYPE="${DB_CLIENT%%:*}"
17
+ DB_VERSION="${DB_CLIENT##*:}"
18
+ SCRIPTS_DIR="$(dirname "$0")"
19
+
20
+ case "$DB_TYPE" in
21
+ mysql)
22
+ "$SCRIPTS_DIR/mysql-client-install.sh" "$DB_VERSION"
23
+ ;;
24
+ mariadb)
25
+ "$SCRIPTS_DIR/mariadb-compat-install.sh"
26
+ ;;
27
+ *)
28
+ echo "Unknown database type: $DB_TYPE"
29
+ exit 1
30
+ ;;
31
+ esac
@@ -0,0 +1,42 @@
1
+ #!/bin/bash
2
+ # Usage: mariadb-compat-install.sh
3
+ # Creates wrapper scripts to map deprecated mysql commands to mariadb equivalents
4
+ # The mariadb-client package is already installed in the base image
5
+
6
+ set -e
7
+
8
+ echo "Installing MariaDB compatibility wrappers..."
9
+
10
+ # Create wrapper scripts for each mysql* command that maps to mariadb* equivalent
11
+ for cmd in mysql mysqldump mysqladmin mysqlcheck mysqlimport mysqlshow; do
12
+ suffix="${cmd#mysql}"
13
+ mariadb_cmd="mariadb${suffix:+-}${suffix}"
14
+
15
+ if command -v "$mariadb_cmd" &> /dev/null; then
16
+ cat > "/usr/local/bin/$cmd" << EOF
17
+ #!/bin/bash
18
+ exec -a "\$0" $mariadb_cmd "\$@"
19
+ EOF
20
+ chmod +x "/usr/local/bin/$cmd"
21
+ echo " Created wrapper: $cmd -> $mariadb_cmd"
22
+ fi
23
+ done
24
+
25
+ # Create config directory if it doesn't exist
26
+ mkdir -p /etc/mysql/conf.d
27
+
28
+ # Create MySQL client config with compatibility settings
29
+ cat > /etc/mysql/conf.d/lando.cnf << 'MYCNF'
30
+ [client]
31
+ default-character-set=utf8mb4
32
+
33
+ [client-mariadb]
34
+ # Prevent SSL errors when connecting to servers without SSL
35
+ disable-ssl-verify-server-cert
36
+
37
+ [mysqldump]
38
+ # MySQL 8 uses this; MariaDB safely ignores it via loose- prefix
39
+ loose-skip-column-statistics
40
+ MYCNF
41
+
42
+ echo "MariaDB compatibility wrappers installed"
@@ -0,0 +1,67 @@
1
+ #!/bin/bash
2
+ # Install MySQL client from pre-downloaded binaries
3
+ # Usage: mysql-client-install.sh <version>
4
+ # Examples: mysql-client-install.sh 8.4, mysql-client-install.sh 8.0
5
+
6
+ set -e
7
+
8
+ VERSION="${1:-8.4}"
9
+
10
+ echo "Installing MySQL $VERSION client..."
11
+
12
+ # Map version to the closest available pre-downloaded version
13
+ # We have 8.0 and 8.4 available
14
+ case "$VERSION" in
15
+ 8.4*|8.3*)
16
+ CLIENT_VERSION="8.4"
17
+ ;;
18
+ 8.0*|8.1*|8.2*|5.7*)
19
+ CLIENT_VERSION="8.0"
20
+ ;;
21
+ *)
22
+ # Default to 8.4 for unknown versions
23
+ CLIENT_VERSION="8.4"
24
+ echo "Warning: Unknown MySQL version $VERSION, using $CLIENT_VERSION client"
25
+ ;;
26
+ esac
27
+
28
+ CLIENT_DIR="/usr/local/mysql-client/$CLIENT_VERSION"
29
+
30
+ if [ -d "$CLIENT_DIR" ]; then
31
+ # Remove MariaDB client symlinks if they exist in /usr/local/bin
32
+ rm -f /usr/local/bin/mysql /usr/local/bin/mysqldump /usr/local/bin/mysqladmin 2>/dev/null || true
33
+
34
+ # Create symlinks to the pre-downloaded MySQL client
35
+ ln -sf "$CLIENT_DIR/mysql" /usr/local/bin/mysql
36
+ ln -sf "$CLIENT_DIR/mysqldump" /usr/local/bin/mysqldump
37
+ ln -sf "$CLIENT_DIR/mysqladmin" /usr/local/bin/mysqladmin
38
+
39
+ echo "MySQL $CLIENT_VERSION client activated from pre-downloaded binaries"
40
+ else
41
+ echo "Warning: Pre-downloaded MySQL client not found at $CLIENT_DIR"
42
+ echo "Keeping default mariadb-client"
43
+ exit 0
44
+ fi
45
+
46
+ # Create config directory if it doesn't exist
47
+ mkdir -p /etc/mysql/conf.d
48
+
49
+ # Create MySQL client config with compatibility settings
50
+ cat > /etc/mysql/conf.d/lando.cnf << 'MYCNF'
51
+ [client]
52
+ default-character-set=utf8mb4
53
+ # Use PREFERRED so SSL is used when available but self-signed certs
54
+ # (e.g. MySQL 5.7 defaults) don't cause verification failures.
55
+ # Preserves SSL for servers that support it
56
+ ssl-mode=PREFERRED
57
+
58
+ [mysqldump]
59
+ # Prevent column-statistics errors with newer mysqldump
60
+ skip-column-statistics
61
+ ssl-mode=PREFERRED
62
+ MYCNF
63
+
64
+ if ! mysql --version 2>/dev/null; then
65
+ echo "Error: MySQL client not available after activation"
66
+ exit 1
67
+ fi
@@ -1,5 +1,9 @@
1
1
  ## {{ UNRELEASED_VERSION }} - [{{ UNRELEASED_DATE }}]({{ UNRELEASED_LINK }})
2
2
 
3
+ ## v1.6.0 - [September 8, 2025](https://github.com/lando/postgres/releases/tag/v1.6.0)
4
+
5
+ * Added support for Postgres 17
6
+
3
7
  ## v1.5.0 - [September 1, 2025](https://github.com/lando/postgres/releases/tag/v1.5.0)
4
8
 
5
9
  * Switched images to [bitnamilegacy](https://github.com/bitnami/containers/issues/83267) namespace
@@ -11,8 +11,9 @@ module.exports = {
11
11
  name: 'postgres',
12
12
  config: {
13
13
  version: '10',
14
- supported: ['16', '15', '14', '13', '12', '11', '11.1', '11.0', '10', '10.6.0', '9.6'],
14
+ supported: ['17', '16', '15', '14', '13', '12', '11', '11.1', '11.0', '10', '10.6.0', '9.6'],
15
15
  pinPairs: {
16
+ '17': 'bitnamilegacy/postgresql:17.6.0-debian-12-r4',
16
17
  '16': 'bitnamilegacy/postgresql:16.6.0-debian-12-r2',
17
18
  '15': 'bitnamilegacy/postgresql:15.10.0-debian-12-r2',
18
19
  '14': 'bitnamilegacy/postgresql:14.18.0-debian-12-r0',