@lando/symfony 1.11.0 → 1.12.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.
- package/CHANGELOG.md +7 -0
- package/README.md +2 -1
- package/node_modules/@lando/mariadb/CHANGELOG.md +4 -0
- package/node_modules/@lando/mariadb/builders/mariadb.js +4 -3
- package/node_modules/@lando/mariadb/package.json +5 -5
- package/node_modules/@lando/php/AGENTS.md +81 -0
- package/node_modules/@lando/php/CHANGELOG.md +30 -0
- package/node_modules/@lando/php/README.md +4 -1
- package/node_modules/@lando/php/builders/php.js +39 -5
- package/node_modules/@lando/php/images/5.6-apache/Dockerfile +9 -4
- package/node_modules/@lando/php/images/5.6-fpm/Dockerfile +9 -4
- package/node_modules/@lando/php/images/7.0-apache/Dockerfile +9 -4
- package/node_modules/@lando/php/images/7.0-fpm/Dockerfile +9 -4
- package/node_modules/@lando/php/images/7.1-apache/Dockerfile +1 -1
- package/node_modules/@lando/php/images/7.1-fpm/Dockerfile +1 -1
- package/node_modules/@lando/php/images/7.2-apache/Dockerfile +1 -1
- package/node_modules/@lando/php/images/7.2-fpm/Dockerfile +1 -1
- package/node_modules/@lando/php/images/7.3-apache/Dockerfile +1 -1
- package/node_modules/@lando/php/images/7.3-fpm/Dockerfile +1 -1
- package/node_modules/@lando/php/images/7.4-apache/Dockerfile +2 -2
- package/node_modules/@lando/php/images/7.4-fpm/Dockerfile +2 -2
- package/node_modules/@lando/php/images/8.0-apache/Dockerfile +2 -2
- package/node_modules/@lando/php/images/8.0-fpm/Dockerfile +2 -2
- package/node_modules/@lando/php/images/8.1-apache/Dockerfile +1 -1
- package/node_modules/@lando/php/images/8.1-fpm/Dockerfile +1 -1
- package/node_modules/@lando/php/images/8.2-apache/Dockerfile +1 -1
- package/node_modules/@lando/php/images/8.2-fpm/Dockerfile +1 -1
- package/node_modules/@lando/php/images/8.3-apache/Dockerfile +23 -22
- package/node_modules/@lando/php/images/8.3-fpm/Dockerfile +22 -22
- package/node_modules/@lando/php/images/8.4-apache/Dockerfile +21 -22
- package/node_modules/@lando/php/images/8.4-fpm/Dockerfile +21 -22
- package/node_modules/@lando/php/images/8.5-apache/Dockerfile +77 -0
- package/node_modules/@lando/php/images/8.5-fpm/Dockerfile +78 -0
- package/node_modules/@lando/php/netlify.toml +1 -1
- package/node_modules/@lando/php/package.json +5 -5
- package/node_modules/@lando/php/scripts/install-db-client.sh +31 -0
- package/node_modules/@lando/php/scripts/mariadb-compat-install.sh +42 -0
- package/node_modules/@lando/php/scripts/mysql-client-install.sh +67 -0
- package/node_modules/@lando/postgres/CHANGELOG.md +4 -0
- package/node_modules/@lando/postgres/builders/postgres.js +2 -1
- package/node_modules/@lando/postgres/package.json +5 -5
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
## {{ UNRELEASED_VERSION }} - [{{ UNRELEASED_DATE }}]({{ UNRELEASED_LINK }})
|
|
2
2
|
|
|
3
|
+
## v1.12.1 - [February 20, 2026](https://github.com/lando/symfony/releases/tag/v1.12.1)
|
|
4
|
+
|
|
5
|
+
* Updated to [@lando/php@^1.11.1](https://github.com/lando/php/releases/tag/v1.11.1) for PHP 8.5 and MySQL client fixes
|
|
6
|
+
* Updated to [@lando/mariadb@1.8.0](https://github.com/lando/mariadb/releases/tag/v1.8.0)
|
|
7
|
+
* Updated to [@lando/argv@1.2.0](https://github.com/lando/argv/releases/tag/v1.2.0)
|
|
8
|
+
* Updated to [@lando/postgres@1.6.0](https://github.com/lando/postgres/releases/tag/v1.6.0)
|
|
9
|
+
|
|
3
10
|
## v1.11.0 - [September 3, 2025](https://github.com/lando/symfony/releases/tag/v1.11.0)
|
|
4
11
|
|
|
5
12
|
* Switched images to [bitnamilegacy](https://github.com/bitnami/containers/issues/83267) namespace
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ This is the _official_ [Lando](https://lando.dev) plugin for [Symfony](https://s
|
|
|
4
4
|
|
|
5
5
|
* Allows users to run a `symfony` app
|
|
6
6
|
* Includes the Symfony CLI, accessible via `lando symfony`
|
|
7
|
-
* Allows configuration of PHP versions (e.g., PHP 5.3 to 8.
|
|
7
|
+
* Allows configuration of PHP versions (e.g., PHP 5.3 to 8.5+) via Lando's PHP service
|
|
8
8
|
* Allows users to configure `webroot`
|
|
9
9
|
* Allows users to configure web server to (`apache` or `nginx`)
|
|
10
10
|
* Allows users to configure database backend to (`mariadb`, `mysql`, or `postgres`)
|
|
@@ -50,6 +50,7 @@ We try to log all changes big and small in both [THE CHANGELOG](https://github.c
|
|
|
50
50
|
|
|
51
51
|
* [@pirog](https://github.com/pirog)
|
|
52
52
|
* [@reynoldsalec](https://github.com/reynoldsalec)
|
|
53
|
+
* [@AaronFeledy](https://github.com/AaronFeledy)
|
|
53
54
|
|
|
54
55
|
## Contributors
|
|
55
56
|
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
## {{ UNRELEASED_VERSION }} - [{{ UNRELEASED_DATE }}]({{ UNRELEASED_LINK }})
|
|
2
2
|
|
|
3
|
+
## v1.8.0 - [September 8, 2025](https://github.com/lando/mariadb/releases/tag/v1.8.0)
|
|
4
|
+
|
|
5
|
+
* Added support for MariaDB 11.8
|
|
6
|
+
|
|
3
7
|
## v1.7.0 - [August 30, 2025](https://github.com/lando/mariadb/releases/tag/v1.7.0)
|
|
4
8
|
|
|
5
9
|
* Switched images to [bitnamilegacy](https://github.com/bitnami/containers/issues/83267) namespace
|
|
@@ -9,12 +9,13 @@ module.exports = {
|
|
|
9
9
|
name: 'mariadb',
|
|
10
10
|
config: {
|
|
11
11
|
version: '10.3',
|
|
12
|
-
supported: ['11.7', '11.6', '11.5', '11.4', '11.3', '11.2',
|
|
13
|
-
'11.0', '10.11', '10.10', '10.9', '10.8', '10.7', '10.6',
|
|
14
|
-
'10.4', '10.3', '10.2', '10.1'],
|
|
12
|
+
supported: ['11.8', '11.7', '11.6', '11.5', '11.4', '11.3', '11.2',
|
|
13
|
+
'11.1', '11.0', '10.11', '10.10', '10.9', '10.8', '10.7', '10.6',
|
|
14
|
+
'10.5', '10.4', '10.3', '10.2', '10.1'],
|
|
15
15
|
legacy: ['11.7', '11.6', '11.5', '11.3', '11.2', '11.1', '11.0',
|
|
16
16
|
'10.10', '10.9', '10.8', '10.7', '10.4', '10.3', '10.2', '10.1'],
|
|
17
17
|
pinPairs: {
|
|
18
|
+
'11.8': 'bitnamilegacy/mariadb:11.8.3-debian-12-r0',
|
|
18
19
|
'11.7': 'bitnamilegacy/mariadb:11.7.2-debian-12-r0',
|
|
19
20
|
'11.6': 'bitnamilegacy/mariadb:11.6.2-debian-12-r0',
|
|
20
21
|
'11.5': 'bitnamilegacy/mariadb:11.5.2-debian-12-r7',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lando/mariadb",
|
|
3
3
|
"description": "A Lando plugin that provides a tight integration with mariadb.",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.8.0",
|
|
5
5
|
"author": "Mike Pirog @pirog",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": "lando/mariadb",
|
|
@@ -62,9 +62,9 @@
|
|
|
62
62
|
"lodash"
|
|
63
63
|
],
|
|
64
64
|
"dist": {
|
|
65
|
-
"integrity": "sha512-
|
|
66
|
-
"shasum": "
|
|
67
|
-
"filename": "lando-mariadb-1.
|
|
68
|
-
"unpackedSize":
|
|
65
|
+
"integrity": "sha512-PmnBqSulIxzB3/RfG4quKqBVdCyy9gw0DNBhz9sDiGjf3Pm2N5+QEEko+zNzhlLNy0C4nbfeQy3pCEyw1otclg==",
|
|
66
|
+
"shasum": "2ba1368e8c58386f966e631f88b7a1c335217080",
|
|
67
|
+
"filename": "lando-mariadb-1.8.0.tgz",
|
|
68
|
+
"unpackedSize": 1429885
|
|
69
69
|
}
|
|
70
70
|
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# PROJECT KNOWLEDGE BASE
|
|
2
|
+
|
|
3
|
+
**Generated:** 2026-01-09
|
|
4
|
+
**Commit:** 355c304
|
|
5
|
+
**Branch:** main
|
|
6
|
+
|
|
7
|
+
## OVERVIEW
|
|
8
|
+
|
|
9
|
+
Lando PHP plugin - provides PHP services (5.3-8.5) via nginx/apache/cli with composer, xdebug support. Part of @lando ecosystem.
|
|
10
|
+
|
|
11
|
+
## STRUCTURE
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
lando--php/
|
|
15
|
+
├── builders/ # Service builders (php.js = main logic)
|
|
16
|
+
├── config/ # PHP/nginx config templates
|
|
17
|
+
├── utils/ # Helper functions
|
|
18
|
+
├── examples/ # Version-specific test fixtures (php-*)
|
|
19
|
+
├── test/ # Unit tests (placeholder)
|
|
20
|
+
├── docs/ # Project documentation markdown files and associated Vitepress site
|
|
21
|
+
├── scripts/ # Helper scripts for build/install/etc
|
|
22
|
+
└── images/ # Docker image definitions for various PHP versions
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## WHERE TO LOOK
|
|
26
|
+
|
|
27
|
+
| Task | Location | Notes |
|
|
28
|
+
|------|----------|-------|
|
|
29
|
+
| PHP version logic | `builders/php.js` | LandoPhp class, version detection |
|
|
30
|
+
| Nginx wrapper | `builders/php-nginx.js` | Extends @lando/nginx |
|
|
31
|
+
| Composer install | `builders/php.js:getDefaultComposerVersion()` | Version auto-detection |
|
|
32
|
+
| Xdebug config | `builders/php.js:xdebugConfig()` | Per-version handling |
|
|
33
|
+
| PHP config templates | `config/*.conf.tpl` | EJS templates |
|
|
34
|
+
| Add CLI/build steps | `utils/add-build-step.js` | Front/back insertion |
|
|
35
|
+
| Install command gen | `utils/get-install-commands.js` | Package manager abstraction |
|
|
36
|
+
|
|
37
|
+
## CODE MAP
|
|
38
|
+
|
|
39
|
+
| Symbol | Type | Location | Role |
|
|
40
|
+
|--------|------|----------|------|
|
|
41
|
+
| `LandoPhp` | class | builders/php.js:18 | Main service builder |
|
|
42
|
+
| `getDefaultComposerVersion` | fn | builders/php.js | Composer version detection |
|
|
43
|
+
| `nginxConfig` | fn | builders/php.js | Nginx service config |
|
|
44
|
+
| `xdebugConfig` | fn | builders/php.js | Xdebug version handling |
|
|
45
|
+
| `parseApache/Cli/Nginx` | fns | builders/php.js | Via-specific parsing |
|
|
46
|
+
| `addBuildStep` | fn | utils/add-build-step.js | Build step insertion |
|
|
47
|
+
| `getInstallCommands` | fn | utils/get-install-commands.js | Install command gen |
|
|
48
|
+
| `cloneOverrides` | fn | utils/clone-overrides.js | Deep clone sans image/build |
|
|
49
|
+
|
|
50
|
+
## CONVENTIONS
|
|
51
|
+
|
|
52
|
+
- **ESLint**: Google style, max-len 140, JSDoc required for functions
|
|
53
|
+
- **Images**: `devwithlando/php:{version}-{via}` format
|
|
54
|
+
- **Versions**: Supported 5.3-8.5, legacy removed at 8.x
|
|
55
|
+
- **Via options**: apache (default), nginx, cli
|
|
56
|
+
- **Composer**: v1 for PHP <7.2, v2 otherwise
|
|
57
|
+
|
|
58
|
+
## ANTI-PATTERNS
|
|
59
|
+
|
|
60
|
+
- Don't modify `index.js` - intentionally empty placeholder
|
|
61
|
+
- Don't add dependencies without checking @lando/nginx compatibility
|
|
62
|
+
- examples/* are test fixtures - structured identically per version
|
|
63
|
+
|
|
64
|
+
## COMMANDS
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# Development
|
|
68
|
+
npm run lint # ESLint check
|
|
69
|
+
npm run test:unit # Mocha unit tests
|
|
70
|
+
npm run test:leia # Leia integration tests
|
|
71
|
+
|
|
72
|
+
# Coverage
|
|
73
|
+
nyc covers: lib/, recipes/, services/, types/
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## NOTES
|
|
77
|
+
|
|
78
|
+
- `plugin.yml` has `legacy: true` for Lando v3 compatibility
|
|
79
|
+
- Root `.lando.yml` is for docs site (vitepress), not plugin testing
|
|
80
|
+
- Test file `test/auth.spec.js` is placeholder ("should have tests")
|
|
81
|
+
- PHP config uses EJS templates (`.conf.tpl` extension)
|
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
## {{ UNRELEASED_VERSION }} - [{{ UNRELEASED_DATE }}]({{ UNRELEASED_LINK }})
|
|
2
2
|
|
|
3
|
+
## v1.11.1 - [February 20, 2026](https://github.com/lando/php/releases/tag/v1.11.1)
|
|
4
|
+
|
|
5
|
+
* Fixed database type detection when no version is specified
|
|
6
|
+
* Added npm edge-to-latest tag promotion on release
|
|
7
|
+
|
|
8
|
+
## v1.11.0 - [February 19, 2026](https://github.com/lando/php/releases/tag/v1.11.0)
|
|
9
|
+
|
|
10
|
+
* Fixed database client auto-detection for recipe-based services [#223](https://github.com/lando/php/pull/223)
|
|
11
|
+
|
|
12
|
+
## v1.10.0 - [February 18, 2026](https://github.com/lando/php/releases/tag/v1.10.0)
|
|
13
|
+
|
|
14
|
+
* Added database client auto-detection and version matching [#212](https://github.com/lando/php/pull/212)
|
|
15
|
+
* Added Docker image build status badge to README
|
|
16
|
+
* Added GD AVIF support verification for PHP 8.3+ [#219](https://github.com/lando/php/pull/219)
|
|
17
|
+
* Fixed composer install ordering to run before user build steps
|
|
18
|
+
* Fixed MariaDB wrapper script command names and test auto-detection [#212](https://github.com/lando/php/pull/212)
|
|
19
|
+
* Fixed typo in documentation
|
|
20
|
+
* Updated Docker image base version to Debian 13
|
|
21
|
+
* Updated Docker image tags from -6 to -7
|
|
22
|
+
* Updated Node.js 14.x to 20.x in test examples [#215](https://github.com/lando/php/pull/215)
|
|
23
|
+
* Updated `actions/cache` from 4 to 5
|
|
24
|
+
* Updated `actions/checkout` from 4 to 6
|
|
25
|
+
|
|
26
|
+
## v1.9.0 - [December 5, 2025](https://github.com/lando/php/releases/tag/v1.9.0)
|
|
27
|
+
|
|
28
|
+
* Added support for PHP 8.5
|
|
29
|
+
* Added Debian 13 (trixie) base images for PHP 8.3-8.5
|
|
30
|
+
* Changed PHP 7.4 and 8.0 images to use MariaDB `archive.mariadb.org` apt repository
|
|
31
|
+
* Fixed expired keys preventing stretch-based images from building
|
|
32
|
+
|
|
3
33
|
## v1.8.0 - [September 2, 2025](https://github.com/lando/php/releases/tag/v1.8.0)
|
|
4
34
|
|
|
5
35
|
* Removed automatic installation of `hirak/prestissimo` for `composer:1`
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# PHP Lando Plugin
|
|
2
2
|
|
|
3
|
+
[](https://github.com/lando/php/actions/workflows/build-php-images.yml)
|
|
4
|
+
|
|
3
5
|
This is the _official_ [Lando](https://lando.dev) plugin for [PHP](https://php.net). When installed it...
|
|
4
6
|
|
|
5
7
|
* Allows users to run various `php` versions
|
|
@@ -16,7 +18,7 @@ Add a `php` service to your Landofile
|
|
|
16
18
|
```yaml
|
|
17
19
|
services:
|
|
18
20
|
myservice:
|
|
19
|
-
type: php:8.
|
|
21
|
+
type: php:8.5
|
|
20
22
|
via: nginx
|
|
21
23
|
webroot: www
|
|
22
24
|
```
|
|
@@ -43,6 +45,7 @@ We try to log all changes big and small in both [THE CHANGELOG](https://github.c
|
|
|
43
45
|
|
|
44
46
|
* [@pirog](https://github.com/pirog)
|
|
45
47
|
* [@reynoldsalec](https://github.com/reynoldsalec)
|
|
48
|
+
* [@aaronfeledy](https://github.com/AaronFeledy)
|
|
46
49
|
|
|
47
50
|
## Contributors
|
|
48
51
|
|
|
@@ -58,6 +58,34 @@ const xdebugConfig = host => ([
|
|
|
58
58
|
`remote_host=${host}`,
|
|
59
59
|
].join(' '));
|
|
60
60
|
|
|
61
|
+
const detectDatabaseClient = (options, debug = () => {}) => {
|
|
62
|
+
if (options.db_client === false) return null;
|
|
63
|
+
if (options.db_client && options.db_client !== 'auto') return options.db_client;
|
|
64
|
+
|
|
65
|
+
const services = options._app?.config?.services || {};
|
|
66
|
+
let mysqlVersion = null;
|
|
67
|
+
let mariaVersion = null;
|
|
68
|
+
|
|
69
|
+
for (const service of Object.values(services)) {
|
|
70
|
+
const type = service?.type || '';
|
|
71
|
+
// Match mysql or mysql:X, including recipe prefixes (e.g., backdrop-mysql, backdrop-mysql:8.0)
|
|
72
|
+
const mysqlMatch = type.match(/(?:^|-)mysql(?::(\d+(?:\.\d+)?))?(?:$|[^a-z])/);
|
|
73
|
+
if (mysqlMatch && !mysqlVersion) mysqlVersion = mysqlMatch[1] || '8.0';
|
|
74
|
+
// Match mariadb or mariadb:X, including recipe prefixes (e.g., backdrop-mariadb:10.6)
|
|
75
|
+
const mariaMatch = type.match(/(?:^|-)mariadb(?::(\d+(?:\.\d+)?))?(?:$|[^a-z])/);
|
|
76
|
+
if (mariaMatch && !mariaVersion) mariaVersion = mariaMatch[1] || '11.4';
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
if (mariaVersion && mysqlVersion) {
|
|
80
|
+
debug('Both MariaDB (%s) and MySQL (%s) detected; using MariaDB. Set db_client to override.',
|
|
81
|
+
mariaVersion, mysqlVersion);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
if (mariaVersion) return `mariadb:${mariaVersion}`;
|
|
85
|
+
if (mysqlVersion) return `mysql:${mysqlVersion}`;
|
|
86
|
+
return null;
|
|
87
|
+
};
|
|
88
|
+
|
|
61
89
|
/**
|
|
62
90
|
* Helper function to build a package string by combining package name and version
|
|
63
91
|
*
|
|
@@ -126,7 +154,7 @@ module.exports = {
|
|
|
126
154
|
name: 'php',
|
|
127
155
|
config: {
|
|
128
156
|
version: '7.4',
|
|
129
|
-
supported: ['8.4', '8.3', '8.2', '8.1', '8.0', '7.4', '7.3', '7.2', '7.1', '7.0', '5.6', '5.5', '5.4', '5.3'],
|
|
157
|
+
supported: ['8.5', '8.4', '8.3', '8.2', '8.1', '8.0', '7.4', '7.3', '7.2', '7.1', '7.0', '5.6', '5.5', '5.4', '5.3'],
|
|
130
158
|
legacy: ['7.2', '7.1', '7.0', '5.6', '5.5', '5.4', '5.3'],
|
|
131
159
|
gen2: ['5.5', '5.4', '5.3'],
|
|
132
160
|
path: [
|
|
@@ -163,8 +191,9 @@ module.exports = {
|
|
|
163
191
|
},
|
|
164
192
|
scriptsDir: path.resolve(__dirname, '..', 'scripts'),
|
|
165
193
|
sources: [],
|
|
166
|
-
suffix: '
|
|
194
|
+
suffix: '7',
|
|
167
195
|
ssl: false,
|
|
196
|
+
db_client: 'auto',
|
|
168
197
|
via: 'apache',
|
|
169
198
|
volumes: ['/usr/local/bin'],
|
|
170
199
|
webroot: '.',
|
|
@@ -231,12 +260,17 @@ module.exports = {
|
|
|
231
260
|
addBuildStep(commands, options._app, options.name, 'build_internal');
|
|
232
261
|
}
|
|
233
262
|
|
|
234
|
-
// Install the desired composer version as
|
|
263
|
+
// Install the desired composer version as a `build_as_root_internal` step so it runs
|
|
264
|
+
// before user build steps — prevents composer from being missing if build_as_root fails
|
|
235
265
|
if (options.composer_version) {
|
|
236
266
|
debug('Installing composer version %s', options.composer_version);
|
|
237
267
|
const commands = [`/etc/lando/service/helpers/install-composer.sh ${options.composer_version}`];
|
|
238
|
-
|
|
239
|
-
|
|
268
|
+
addBuildStep(commands, options._app, options.name, 'build_as_root_internal');
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
const dbClient = detectDatabaseClient(options, debug);
|
|
272
|
+
if (dbClient && phpSemver && semver.gte(phpSemver, '8.3.0')) {
|
|
273
|
+
addBuildStep([`/etc/lando/service/helpers/install-db-client.sh ${dbClient}`], options._app, options.name, 'build_as_root_internal');
|
|
240
274
|
}
|
|
241
275
|
|
|
242
276
|
// Add in nginx if we need to
|
|
@@ -1,15 +1,20 @@
|
|
|
1
|
-
# docker build -t devwithlando/php:5.6-apache-
|
|
1
|
+
# docker build -t devwithlando/php:5.6-apache-7 .
|
|
2
2
|
|
|
3
3
|
FROM php:5.6-apache-stretch
|
|
4
4
|
|
|
5
|
-
#
|
|
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
|
-
&&
|
|
12
|
-
&& apt -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,15 +1,20 @@
|
|
|
1
|
-
# docker build -t devwithlando/php:5.6-fpm-
|
|
1
|
+
# docker build -t devwithlando/php:5.6-fpm-7 .
|
|
2
2
|
|
|
3
3
|
FROM php:5.6-fpm-stretch
|
|
4
4
|
|
|
5
|
-
#
|
|
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
|
-
&&
|
|
12
|
-
&& apt -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,15 +1,20 @@
|
|
|
1
|
-
# docker build -t devwithlando/php:7.0-apache-
|
|
1
|
+
# docker build -t devwithlando/php:7.0-apache-7 .
|
|
2
2
|
|
|
3
3
|
FROM php:7.0-apache-stretch
|
|
4
4
|
|
|
5
|
-
#
|
|
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
|
-
&&
|
|
12
|
-
&& apt -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,15 +1,20 @@
|
|
|
1
|
-
# docker build -t devwithlando/php:7.0-fpm-
|
|
1
|
+
# docker build -t devwithlando/php:7.0-fpm-7 .
|
|
2
2
|
|
|
3
3
|
FROM php:7.0-fpm-stretch
|
|
4
4
|
|
|
5
|
-
#
|
|
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
|
-
&&
|
|
12
|
-
&& apt -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.4-apache-
|
|
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://
|
|
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-
|
|
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://
|
|
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-
|
|
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://
|
|
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-
|
|
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://
|
|
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,41 +1,30 @@
|
|
|
1
|
-
# docker build -t devwithlando/php:8.3-apache-
|
|
1
|
+
# docker build -t devwithlando/php:8.3-apache-7 .
|
|
2
2
|
|
|
3
|
-
FROM
|
|
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
|
|
16
|
+
libimage-exiftool-perl \
|
|
17
|
+
git \
|
|
28
18
|
gnupg2 \
|
|
29
19
|
imagemagick \
|
|
30
|
-
|
|
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 \
|