@lando/drupal 1.12.0 → 1.14.0

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 (150) hide show
  1. package/.eslintignore +5 -0
  2. package/.lando.yml +1 -2
  3. package/CHANGELOG.md +26 -0
  4. package/LICENSE +21 -0
  5. package/README.md +20 -27
  6. package/builders/_drupaly.js +44 -19
  7. package/builders/drupal-mariadb.js +1 -1
  8. package/builders/drupal-mssql.js +1 -1
  9. package/builders/drupal-mysql.js +7 -1
  10. package/builders/drupal-nginx.js +1 -1
  11. package/builders/drupal-php.js +1 -3
  12. package/builders/drupal-postgres.js +1 -1
  13. package/config/drupal11/mysql8.cnf +44 -92
  14. package/inits/drupal10.js +5 -0
  15. package/inits/drupal11.js +7 -0
  16. package/inits/drupal6.js +4 -0
  17. package/inits/drupal7.js +3 -0
  18. package/inits/drupal8.js +3 -0
  19. package/inits/drupal9.js +5 -0
  20. package/netlify.toml +1 -1
  21. package/node_modules/@lando/mariadb/.lando.yml +1 -1
  22. package/node_modules/@lando/mariadb/.node-version +1 -1
  23. package/node_modules/@lando/mariadb/CHANGELOG.md +12 -1
  24. package/node_modules/@lando/mariadb/LICENSE +21 -0
  25. package/node_modules/@lando/mariadb/README.md +5 -2
  26. package/node_modules/@lando/mariadb/builders/mariadb.js +26 -22
  27. package/node_modules/@lando/mariadb/netlify.toml +9 -2
  28. package/node_modules/@lando/mariadb/package.json +8 -8
  29. package/node_modules/@lando/mysql/.lando.yml +1 -1
  30. package/node_modules/@lando/mysql/CHANGELOG.md +5 -0
  31. package/node_modules/@lando/mysql/LICENSE +21 -0
  32. package/node_modules/@lando/mysql/README.md +5 -2
  33. package/node_modules/@lando/mysql/builders/mysql.js +9 -5
  34. package/node_modules/@lando/mysql/netlify.toml +9 -0
  35. package/node_modules/@lando/mysql/package.json +8 -8
  36. package/node_modules/@lando/php/.lando.yml +1 -1
  37. package/node_modules/@lando/php/AGENTS.md +81 -0
  38. package/node_modules/@lando/php/CHANGELOG.md +31 -0
  39. package/node_modules/@lando/php/LICENSE +21 -0
  40. package/node_modules/@lando/php/README.md +9 -3
  41. package/node_modules/@lando/php/builders/php.js +39 -12
  42. package/node_modules/@lando/php/images/5.6-apache/Dockerfile +9 -4
  43. package/node_modules/@lando/php/images/5.6-fpm/Dockerfile +9 -4
  44. package/node_modules/@lando/php/images/7.0-apache/Dockerfile +9 -4
  45. package/node_modules/@lando/php/images/7.0-fpm/Dockerfile +9 -4
  46. package/node_modules/@lando/php/images/7.1-apache/Dockerfile +1 -1
  47. package/node_modules/@lando/php/images/7.1-fpm/Dockerfile +1 -1
  48. package/node_modules/@lando/php/images/7.2-apache/Dockerfile +1 -1
  49. package/node_modules/@lando/php/images/7.2-fpm/Dockerfile +1 -1
  50. package/node_modules/@lando/php/images/7.3-apache/Dockerfile +1 -1
  51. package/node_modules/@lando/php/images/7.3-fpm/Dockerfile +1 -1
  52. package/node_modules/@lando/php/images/7.4-apache/Dockerfile +2 -2
  53. package/node_modules/@lando/php/images/7.4-fpm/Dockerfile +2 -2
  54. package/node_modules/@lando/php/images/8.0-apache/Dockerfile +2 -2
  55. package/node_modules/@lando/php/images/8.0-fpm/Dockerfile +2 -2
  56. package/node_modules/@lando/php/images/8.1-apache/Dockerfile +1 -1
  57. package/node_modules/@lando/php/images/8.1-fpm/Dockerfile +1 -1
  58. package/node_modules/@lando/php/images/8.2-apache/Dockerfile +1 -1
  59. package/node_modules/@lando/php/images/8.2-fpm/Dockerfile +1 -1
  60. package/node_modules/@lando/php/images/8.3-apache/Dockerfile +23 -22
  61. package/node_modules/@lando/php/images/8.3-fpm/Dockerfile +22 -22
  62. package/node_modules/@lando/php/images/8.4-apache/Dockerfile +21 -22
  63. package/node_modules/@lando/php/images/8.4-fpm/Dockerfile +21 -22
  64. package/node_modules/@lando/php/images/8.5-apache/Dockerfile +77 -0
  65. package/node_modules/@lando/php/images/8.5-fpm/Dockerfile +78 -0
  66. package/node_modules/@lando/php/netlify.toml +10 -1
  67. package/node_modules/@lando/php/node_modules/@lando/nginx/.lando.yml +1 -1
  68. package/node_modules/@lando/php/node_modules/@lando/nginx/.node-version +1 -1
  69. package/node_modules/@lando/php/node_modules/@lando/nginx/CHANGELOG.md +9 -1
  70. package/node_modules/@lando/php/node_modules/@lando/nginx/LICENSE +21 -0
  71. package/node_modules/@lando/php/node_modules/@lando/nginx/README.md +5 -2
  72. package/node_modules/@lando/php/node_modules/@lando/nginx/builders/nginx.js +34 -15
  73. package/node_modules/@lando/php/node_modules/@lando/nginx/netlify.toml +9 -4
  74. package/node_modules/@lando/php/node_modules/@lando/nginx/package.json +8 -8
  75. package/node_modules/@lando/php/package.json +10 -10
  76. package/node_modules/@lando/php/scripts/install-db-client.sh +31 -0
  77. package/node_modules/@lando/php/scripts/mariadb-compat-install.sh +42 -0
  78. package/node_modules/@lando/php/scripts/mysql-client-install.sh +62 -0
  79. package/node_modules/@lando/postgres/.lando.yml +1 -1
  80. package/node_modules/@lando/postgres/CHANGELOG.md +15 -0
  81. package/node_modules/@lando/postgres/LICENSE +21 -0
  82. package/node_modules/@lando/postgres/README.md +5 -2
  83. package/node_modules/@lando/postgres/builders/postgres.js +11 -10
  84. package/node_modules/@lando/postgres/netlify.toml +9 -4
  85. package/node_modules/@lando/postgres/package.json +8 -8
  86. package/node_modules/semver/README.md +14 -4
  87. package/node_modules/semver/bin/semver.js +4 -1
  88. package/node_modules/semver/classes/comparator.js +2 -0
  89. package/node_modules/semver/classes/index.js +2 -0
  90. package/node_modules/semver/classes/range.js +2 -0
  91. package/node_modules/semver/classes/semver.js +22 -5
  92. package/node_modules/semver/functions/clean.js +2 -0
  93. package/node_modules/semver/functions/cmp.js +2 -0
  94. package/node_modules/semver/functions/coerce.js +2 -0
  95. package/node_modules/semver/functions/compare-build.js +2 -0
  96. package/node_modules/semver/functions/compare-loose.js +2 -0
  97. package/node_modules/semver/functions/compare.js +2 -0
  98. package/node_modules/semver/functions/diff.js +7 -12
  99. package/node_modules/semver/functions/eq.js +2 -0
  100. package/node_modules/semver/functions/gt.js +2 -0
  101. package/node_modules/semver/functions/gte.js +2 -0
  102. package/node_modules/semver/functions/inc.js +2 -0
  103. package/node_modules/semver/functions/lt.js +2 -0
  104. package/node_modules/semver/functions/lte.js +2 -0
  105. package/node_modules/semver/functions/major.js +2 -0
  106. package/node_modules/semver/functions/minor.js +2 -0
  107. package/node_modules/semver/functions/neq.js +2 -0
  108. package/node_modules/semver/functions/parse.js +2 -0
  109. package/node_modules/semver/functions/patch.js +2 -0
  110. package/node_modules/semver/functions/prerelease.js +2 -0
  111. package/node_modules/semver/functions/rcompare.js +2 -0
  112. package/node_modules/semver/functions/rsort.js +2 -0
  113. package/node_modules/semver/functions/satisfies.js +2 -0
  114. package/node_modules/semver/functions/sort.js +2 -0
  115. package/node_modules/semver/functions/valid.js +2 -0
  116. package/node_modules/semver/index.js +2 -0
  117. package/node_modules/semver/internal/constants.js +2 -0
  118. package/node_modules/semver/internal/debug.js +2 -0
  119. package/node_modules/semver/internal/identifiers.js +2 -0
  120. package/node_modules/semver/internal/lrucache.js +2 -0
  121. package/node_modules/semver/internal/parse-options.js +2 -0
  122. package/node_modules/semver/internal/re.js +10 -4
  123. package/node_modules/semver/package.json +8 -7
  124. package/node_modules/semver/preload.js +2 -0
  125. package/node_modules/semver/ranges/gtr.js +2 -0
  126. package/node_modules/semver/ranges/intersects.js +2 -0
  127. package/node_modules/semver/ranges/ltr.js +2 -0
  128. package/node_modules/semver/ranges/max-satisfying.js +2 -0
  129. package/node_modules/semver/ranges/min-satisfying.js +2 -0
  130. package/node_modules/semver/ranges/min-version.js +2 -0
  131. package/node_modules/semver/ranges/outside.js +2 -0
  132. package/node_modules/semver/ranges/simplify.js +2 -0
  133. package/node_modules/semver/ranges/subset.js +2 -0
  134. package/node_modules/semver/ranges/to-comparators.js +2 -0
  135. package/node_modules/semver/ranges/valid.js +2 -0
  136. package/package.json +13 -13
  137. package/LICENSE.md +0 -674
  138. package/PRIVACY.md +0 -169
  139. package/node_modules/@lando/mariadb/LICENSE.md +0 -674
  140. package/node_modules/@lando/mariadb/PRIVACY.md +0 -169
  141. package/node_modules/@lando/mariadb/tmpfile +0 -0
  142. package/node_modules/@lando/mysql/.tool-versions +0 -1
  143. package/node_modules/@lando/mysql/LICENSE.md +0 -674
  144. package/node_modules/@lando/mysql/PRIVACY.md +0 -169
  145. package/node_modules/@lando/php/LICENSE.md +0 -674
  146. package/node_modules/@lando/php/PRIVACY.md +0 -169
  147. package/node_modules/@lando/php/node_modules/@lando/nginx/LICENSE.md +0 -674
  148. package/node_modules/@lando/php/node_modules/@lando/nginx/PRIVACY.md +0 -169
  149. package/node_modules/@lando/postgres/LICENSE.md +0 -674
  150. package/node_modules/@lando/postgres/PRIVACY.md +0 -169
@@ -1,15 +1,20 @@
1
- # docker build -t devwithlando/php:7.0-fpm-5 .
1
+ # docker build -t devwithlando/php:7.0-fpm-7 .
2
2
 
3
3
  FROM php:7.0-fpm-stretch
4
4
 
5
- # Install dependencies we need
5
+ # Debian Stretch has archived repositories and expired keys
6
6
  RUN \
7
7
  sed -i 's/deb.debian.org/archive.debian.org/g' /etc/apt/sources.list \
8
8
  && sed -i 's|security.debian.org|archive.debian.org/|g' /etc/apt/sources.list \
9
9
  && sed -i '/stretch-updates/d' /etc/apt/sources.list \
10
10
  && echo 'Acquire::Check-Valid-Until "false";' > /etc/apt/apt.conf.d/99ignore-release-date \
11
- && mkdir -p /usr/share/man/man1 /usr/share/man/man7 \
12
- && apt -y update && apt-get install -y \
11
+ && apt-get -qq update -o Acquire::AllowInsecureRepositories=true -o Acquire::AllowDowngradeToInsecureRepositories=true -o APT::Get::AllowUnauthenticated=true \
12
+ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests -o APT::Get::AllowUnauthenticated=true debian-archive-keyring
13
+
14
+ # Install dependencies
15
+ RUN \
16
+ mkdir -p /usr/share/man/man1 /usr/share/man/man7 \
17
+ && apt-get update && apt-get install -y \
13
18
  gnupg2 \
14
19
  wget \
15
20
  bzip2 \
@@ -1,4 +1,4 @@
1
- # docker build -t devwithlando/php:7.1-apache-5 .
1
+ # docker build -t devwithlando/php:7.1-apache-7 .
2
2
 
3
3
  FROM php:7.1-apache-buster
4
4
 
@@ -1,4 +1,4 @@
1
- # docker build -t devwithlando/php:7.1-fpm-5 .
1
+ # docker build -t devwithlando/php:7.1-fpm-7 .
2
2
 
3
3
  FROM php:7.1-fpm-buster
4
4
 
@@ -1,4 +1,4 @@
1
- # docker build -t devwithlando/php:7.2-apache-5 .
1
+ # docker build -t devwithlando/php:7.2-apache-7 .
2
2
 
3
3
  FROM php:7.2-apache-buster
4
4
 
@@ -1,4 +1,4 @@
1
- # docker build -t devwithlando/php:7.2-fpm-5 .
1
+ # docker build -t devwithlando/php:7.2-fpm-7 .
2
2
 
3
3
  FROM php:7.2-fpm-buster
4
4
 
@@ -1,4 +1,4 @@
1
- # docker build -t devwithlando/php:7.3-apache-5 .
1
+ # docker build -t devwithlando/php:7.3-apache-7 .
2
2
 
3
3
  FROM php:7.3-apache-bullseye
4
4
 
@@ -1,4 +1,4 @@
1
- # docker build -t devwithlando/php:7.3-fpm-5 .
1
+ # docker build -t devwithlando/php:7.3-fpm-7 .
2
2
 
3
3
  FROM php:7.3-fpm-bullseye
4
4
 
@@ -1,4 +1,4 @@
1
- # docker build -t devwithlando/php:7.4-apache-5 .
1
+ # docker build -t devwithlando/php:7.4-apache-7 .
2
2
 
3
3
  FROM php:7.4-apache-bullseye
4
4
 
@@ -8,7 +8,7 @@ RUN \
8
8
  # MariaDB client compatibility (https://github.com/lando/php/issues/120)
9
9
  mkdir -p /etc/apt/keyrings \
10
10
  && curl -o /etc/apt/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp' \
11
- && echo "deb [signed-by=/etc/apt/keyrings/mariadb-keyring.pgp] https://mirror.mariadb.org/repo/10.5/debian bullseye main" > /etc/apt/sources.list.d/mariadb.list
11
+ && echo "deb [signed-by=/etc/apt/keyrings/mariadb-keyring.pgp] https://archive.mariadb.org/repo/10.5/debian bullseye main" > /etc/apt/sources.list.d/mariadb.list
12
12
 
13
13
  RUN mkdir -p /usr/share/man/man1 /usr/share/man/man7 \
14
14
  && apt -y update && apt-get install -y \
@@ -1,4 +1,4 @@
1
- # docker build -t devwithlando/php:7.4-fpm-5 .
1
+ # docker build -t devwithlando/php:7.4-fpm-7 .
2
2
 
3
3
  FROM php:7.4-fpm-bullseye
4
4
 
@@ -8,7 +8,7 @@ RUN \
8
8
  # MariaDB client compatibility (https://github.com/lando/php/issues/120)
9
9
  mkdir -p /etc/apt/keyrings \
10
10
  && curl -o /etc/apt/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp' \
11
- && echo "deb [signed-by=/etc/apt/keyrings/mariadb-keyring.pgp] https://mirror.mariadb.org/repo/10.5/debian bullseye main" > /etc/apt/sources.list.d/mariadb.list
11
+ && echo "deb [signed-by=/etc/apt/keyrings/mariadb-keyring.pgp] https://archive.mariadb.org/repo/10.5/debian bullseye main" > /etc/apt/sources.list.d/mariadb.list
12
12
 
13
13
  RUN mkdir -p /usr/share/man/man1 /usr/share/man/man7 \
14
14
  && apt -y update && apt-get install -y \
@@ -1,4 +1,4 @@
1
- # docker build -t devwithlando/php:8.0-apache-5 .
1
+ # docker build -t devwithlando/php:8.0-apache-7 .
2
2
 
3
3
  FROM php:8.0-apache-bullseye
4
4
 
@@ -8,7 +8,7 @@ RUN \
8
8
  # MariaDB client compatibility (https://github.com/lando/php/issues/120)
9
9
  mkdir -p /etc/apt/keyrings \
10
10
  && curl -o /etc/apt/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp' \
11
- && echo "deb [signed-by=/etc/apt/keyrings/mariadb-keyring.pgp] https://mirror.mariadb.org/repo/10.5/debian bullseye main" > /etc/apt/sources.list.d/mariadb.list
11
+ && echo "deb [signed-by=/etc/apt/keyrings/mariadb-keyring.pgp] https://archive.mariadb.org/repo/10.5/debian bullseye main" > /etc/apt/sources.list.d/mariadb.list
12
12
 
13
13
  RUN mkdir -p /usr/share/man/man1 /usr/share/man/man7 \
14
14
  && apt -y update && apt-get install -y \
@@ -1,4 +1,4 @@
1
- # docker build -t devwithlando/php:8.0-fpm-5 .
1
+ # docker build -t devwithlando/php:8.0-fpm-7 .
2
2
 
3
3
  FROM php:8.0-fpm-bullseye
4
4
 
@@ -8,7 +8,7 @@ RUN \
8
8
  # MariaDB client compatibility (https://github.com/lando/php/issues/120)
9
9
  mkdir -p /etc/apt/keyrings \
10
10
  && curl -o /etc/apt/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp' \
11
- && echo "deb [signed-by=/etc/apt/keyrings/mariadb-keyring.pgp] https://mirror.mariadb.org/repo/10.5/debian bullseye main" > /etc/apt/sources.list.d/mariadb.list
11
+ && echo "deb [signed-by=/etc/apt/keyrings/mariadb-keyring.pgp] https://archive.mariadb.org/repo/10.5/debian bullseye main" > /etc/apt/sources.list.d/mariadb.list
12
12
 
13
13
  RUN mkdir -p /usr/share/man/man1 /usr/share/man/man7 \
14
14
  && apt -y update && apt-get install -y \
@@ -1,4 +1,4 @@
1
- # docker build -t devwithlando/php:8.1-apache-5 .
1
+ # docker build -t devwithlando/php:8.1-apache-7 .
2
2
 
3
3
  FROM php:8.1-apache-bookworm
4
4
 
@@ -1,4 +1,4 @@
1
- # docker build -t devwithlando/php:8.1-fpm-5 .
1
+ # docker build -t devwithlando/php:8.1-fpm-7 .
2
2
 
3
3
  FROM php:8.1-fpm-bookworm
4
4
 
@@ -1,4 +1,4 @@
1
- # docker build -t devwithlando/php:8.2-apache-5 .
1
+ # docker build -t devwithlando/php:8.2-apache-7 .
2
2
 
3
3
  FROM php:8.2-apache-bookworm
4
4
 
@@ -1,4 +1,4 @@
1
- # docker build -t devwithlando/php:8.2-fpm-5 .
1
+ # docker build -t devwithlando/php:8.2-fpm-7 .
2
2
 
3
3
  FROM php:8.2-fpm-bookworm
4
4
 
@@ -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
 
@@ -40,6 +40,15 @@
40
40
  output_path = "reports/lighthouse.html"
41
41
 
42
42
  # We need this so preview environments and the base site look ok on their own
43
+ [[redirects]]
44
+ from = "https://lando-php.netlify.app"
45
+ to = "https://lando-php.netlify.app/plugins/php/index.html"
46
+ status = 301
47
+ force = true
48
+ [[redirects]]
49
+ from = "https://lando-php.netlify.app/*"
50
+ to = "https://docs.lando.dev/:splat"
51
+ status = 301
43
52
  [[redirects]]
44
53
  from = "/"
45
54
  to = "/plugins/php"
@@ -5,7 +5,7 @@ proxy:
5
5
  services:
6
6
  cli:
7
7
  api: 4
8
- image: node:18
8
+ image: node:20
9
9
  command: sleep infinity
10
10
  ports:
11
11
  - 5173:5173/http