@scandipwa/magento-scripts 2.3.7 → 2.4.0-alpha.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 (70) hide show
  1. package/exec.js +2 -2
  2. package/index.js +1 -0
  3. package/lib/commands/cli.js +17 -19
  4. package/lib/commands/execute.js +8 -4
  5. package/lib/commands/start.js +0 -6
  6. package/lib/config/docker.js +67 -128
  7. package/lib/config/get-project-configuration.js +0 -5
  8. package/lib/config/php-config.js +4 -0
  9. package/lib/config/port-config.js +1 -0
  10. package/lib/config/services/composer/versions/composer-2.8.js +1 -1
  11. package/lib/config/services/elasticsearch/versions/elasticsearch-8.17.js +14 -0
  12. package/lib/config/services/elasticsearch/versions/index.js +3 -1
  13. package/lib/config/services/mariadb/versions/index.js +3 -1
  14. package/lib/config/services/mariadb/versions/mariadb-11.4.js +9 -0
  15. package/lib/config/services/mariadb/versions/mariadb-11.6.js +9 -0
  16. package/lib/config/services/opensearch/versions/index.js +3 -1
  17. package/lib/config/services/opensearch/versions/opensearch-2.19.js +14 -0
  18. package/lib/config/services/php/extensions/ftp.js +7 -0
  19. package/lib/config/services/php/versions/index.js +2 -1
  20. package/lib/config/services/php/versions/php-7.2.js +0 -1
  21. package/lib/config/services/php/versions/php-7.3.js +0 -1
  22. package/lib/config/services/php/versions/php-7.4.js +0 -1
  23. package/lib/config/services/php/versions/php-8.1.js +4 -2
  24. package/lib/config/services/php/versions/php-8.2.js +1 -2
  25. package/lib/config/services/php/versions/php-8.3.js +32 -0
  26. package/lib/config/services/redis/index.js +6 -1
  27. package/lib/config/services/redis/valkey-8.0.js +8 -0
  28. package/lib/config/services/redis/valkey-8.1.js +8 -0
  29. package/lib/config/services/varnish/varnish-6-0.js +1 -1
  30. package/lib/config/services/varnish/varnish-6-6.js +1 -1
  31. package/lib/config/services/varnish/varnish-7-0.js +1 -1
  32. package/lib/config/services/varnish/varnish-7-1.js +1 -1
  33. package/lib/config/services/varnish/varnish-7-3.js +1 -1
  34. package/lib/config/services/varnish/varnish-7-4.js +1 -1
  35. package/lib/config/services/varnish/varnish-7-5.js +1 -1
  36. package/lib/config/services/varnish/varnish-7-6.js +1 -1
  37. package/lib/config/templates/nginx.template.conf +31 -8
  38. package/lib/config/templates/ssl-terminator.template.conf +2 -0
  39. package/lib/config/versions/magento-2.4.4-p13.js +40 -0
  40. package/lib/config/versions/magento-2.4.5-p12.js +40 -0
  41. package/lib/config/versions/magento-2.4.6-p10.js +40 -0
  42. package/lib/config/versions/magento-2.4.7-p4.js +0 -1
  43. package/lib/config/versions/magento-2.4.7-p5.js +41 -0
  44. package/lib/config/versions/magento-2.4.8.js +43 -0
  45. package/lib/tasks/database/create-magento-database.js +5 -4
  46. package/lib/tasks/docker/containers/container-api.d.ts +9 -3
  47. package/lib/tasks/docker/containers/container-api.js +14 -9
  48. package/lib/tasks/docker/containers/tasks.js +18 -12
  49. package/lib/tasks/docker/convert-mysql-to-mariadb.js +14 -22
  50. package/lib/tasks/docker/project-image-builder.js +113 -61
  51. package/lib/tasks/execute.js +9 -9
  52. package/lib/tasks/file-system/create-php-debug-config.js +1 -2
  53. package/lib/tasks/file-system/create-php-fpm-debug-config.js +33 -0
  54. package/lib/tasks/file-system/create-phpstorm-config/php-config/php-interpreters-config.js +5 -5
  55. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/composer-settings-config.js +2 -2
  56. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-workspace-project-configuration-config.js +4 -3
  57. package/lib/tasks/file-system/create-ssl-terminator-config.js +27 -1
  58. package/lib/tasks/file-system/index.js +2 -0
  59. package/lib/tasks/magento/setup-magento/waiting-for-varnish.js +0 -1
  60. package/lib/tasks/php/php-container.d.ts +3 -3
  61. package/lib/tasks/php/php-container.js +6 -16
  62. package/lib/tasks/php/update-env-php.js +4 -5
  63. package/lib/tasks/project-config/index.js +0 -3
  64. package/lib/tasks/requirements/elasticsearch-version.js +4 -4
  65. package/lib/tasks/requirements/opensearch-version.js +4 -4
  66. package/lib/tasks/start.js +2 -13
  67. package/lib/util/execute-in-container.js +12 -8
  68. package/package.json +2 -2
  69. package/typings/context.d.ts +9 -3
  70. package/typings/index.d.ts +0 -5
package/exec.js CHANGED
@@ -98,10 +98,10 @@ const newVersionIsAPatch = (latestVersion, currentVersion) => {
98
98
  logger.log() // add empty line
99
99
  }
100
100
 
101
- const [containername, ...commands] = process.argv.slice(2)
101
+ const [containerName, ...commands] = process.argv.slice(2)
102
102
 
103
103
  return executeTask({
104
- containername,
104
+ containerName,
105
105
  commands
106
106
  })
107
107
  })()
package/index.js CHANGED
@@ -121,6 +121,7 @@ const newVersionIsAPatch = (latestVersion, currentVersion) => {
121
121
  }
122
122
 
123
123
  yargs.scriptName('magento-scripts')
124
+ yargs.version(false)
124
125
 
125
126
  // Initialize program commands
126
127
  commands.forEach((command) => command(yargs))
@@ -98,7 +98,7 @@ module.exports = (yargs) => {
98
98
 
99
99
  block
100
100
  .addLine(
101
- `Clear Magento cache: ${logger.style.command('m c:c')}`
101
+ `Clear Magento cache: ${logger.style.command('m c:f')}`
102
102
  )
103
103
  .addLine(
104
104
  `Magento setup upgrade: ${logger.style.command('m se:up')}`
@@ -127,24 +127,22 @@ module.exports = (yargs) => {
127
127
  )
128
128
  .addEmptyLine()
129
129
 
130
- if (ctx.debug) {
131
- block
132
- .addLine('Debug PHP in CLI:')
133
- .addLine('1. Start debugger in VSCode or PHPStorm')
134
- .addLine(
135
- `2. Go to PHP container: ${logger.style.command(
136
- 'exec php'
137
- )}`
138
- )
139
- .addLine(
140
- `3. Run CLI command with ${logger.style.code(
141
- 'XDEBUG_SESSION=phpstorm'
142
- )} environmental variable: ${logger.style.command(
143
- 'XDEBUG_SESSION=phpstorm magento <command>'
144
- )}`
145
- )
146
- .addLine('4. Enjoy')
147
- }
130
+ block
131
+ .addLine('Debug PHP in CLI:')
132
+ .addLine('1. Start debugger in VSCode or PHPStorm')
133
+ .addLine(
134
+ `2. Go to PHP container: ${logger.style.command(
135
+ 'exec phpWithDebug'
136
+ )}`
137
+ )
138
+ .addLine(
139
+ `3. Run CLI command with ${logger.style.code(
140
+ 'XDEBUG_SESSION=PHPSTORM'
141
+ )} environmental variable: ${logger.style.command(
142
+ 'XDEBUG_SESSION=PHPSTORM magento <command>'
143
+ )}`
144
+ )
145
+ .addLine('4. Enjoy')
148
146
 
149
147
  block.log()
150
148
 
@@ -5,10 +5,10 @@ const { executeTask } = require('../tasks/execute')
5
5
  */
6
6
  module.exports = (yargs) => {
7
7
  yargs.command(
8
- 'exec <container name> [commands...]',
8
+ 'exec <container name> [command...]',
9
9
  'Execute command in docker container',
10
10
  (yargs) => {
11
- yargs.usage(`Usage: npm run exec <container name> [commands...]
11
+ yargs.usage(`Usage: npm run exec <container name> [command...]
12
12
 
13
13
  Available containers:
14
14
  - mariadb
@@ -18,8 +18,12 @@ Available containers:
18
18
  - varnish (if enabled)
19
19
  - sslTerminator`)
20
20
  },
21
- async (argv) => {
22
- await executeTask(argv)
21
+ async () => {
22
+ const [containerName, ...commands] = process.argv.slice(3)
23
+ await executeTask({
24
+ containerName,
25
+ commands
26
+ })
23
27
  }
24
28
  )
25
29
  }
@@ -70,12 +70,6 @@ module.exports = (yargs) => {
70
70
  type: 'boolean',
71
71
  default: false
72
72
  })
73
- .option('debug', {
74
- alias: 'd',
75
- describe: 'Enable PHP xdebug.',
76
- type: 'boolean',
77
- default: false
78
- })
79
73
  .option('skip-setup', {
80
74
  alias: 's',
81
75
  describe: 'Skip Magento setup',
@@ -68,69 +68,7 @@ module.exports = async (ctx, overridenConfiguration, baseConfig) => {
68
68
 
69
69
  const { isDockerDesktop } = ctx
70
70
 
71
- if (isDockerDesktop) {
72
- /**
73
- * When CMA is running with Docker Desktop,
74
- * we need create named volumes to avoid performance penalty
75
- */
76
- volumes.php = {
77
- name: `${prefix}_project-data`,
78
- driver: 'local',
79
- opt: {
80
- type: 'none',
81
- device: path.join(magentoDir),
82
- o: 'bind'
83
- }
84
- }
85
- volumes.nginx = {
86
- name: `${prefix}_nginx-data`,
87
- driver: 'local',
88
- opt: {
89
- type: 'none',
90
- device: path.join(cacheDir, 'nginx', 'conf.d'),
91
- o: 'bind'
92
- }
93
- }
94
- volumes.appPub = {
95
- name: `${prefix}_pub-data`,
96
- driver: 'local',
97
- opt: {
98
- type: 'none',
99
- device: path.join(magentoDir, 'pub'),
100
- o: 'bind'
101
- }
102
- }
103
- volumes.appSetup = {
104
- name: `${prefix}_setup-data`,
105
- driver: 'local',
106
- opt: {
107
- type: 'none',
108
- device: path.join(magentoDir, 'setup'),
109
- o: 'bind'
110
- }
111
- }
112
- volumes.sslTerminator = {
113
- name: `${prefix}_ssl-terminator-data`,
114
- driver: 'local',
115
- opt: {
116
- type: 'none',
117
- device: path.join(cacheDir, 'ssl-terminator', 'conf.d'),
118
- o: 'bind'
119
- }
120
- }
121
-
122
- if (varnish.enabled) {
123
- volumes.varnish = {
124
- name: `${prefix}_varnish-data`,
125
- driver: 'local',
126
- opt: {
127
- type: 'none',
128
- device: path.join(cacheDir, 'varnish'),
129
- o: 'bind'
130
- }
131
- }
132
- }
133
- }
71
+ const volumeDirective = isDockerDesktop ? ':cached' : ''
134
72
 
135
73
  /**
136
74
  * @param {Record<string, number>} ports
@@ -147,7 +85,7 @@ module.exports = async (ctx, overridenConfiguration, baseConfig) => {
147
85
  : {}
148
86
 
149
87
  /**
150
- * @type {Record<string, import('../tasks/docker/containers/container-api').ContainerRunOptions & { _?: string, forwardedPorts?: string[], debugImage?: string, remoteImages?: string[], connectCommand?: string[], description?: string }>}
88
+ * @type {Record<string, import('../tasks/docker/containers/container-api').ContainerRunOptions & { _?: string, forwardedPorts?: string[], remoteImages?: string[], connectCommand?: string[], description?: string, pullImage?: boolean }>}
151
89
  */
152
90
  const dockerConfig = {
153
91
  php: {
@@ -166,27 +104,15 @@ module.exports = async (ctx, overridenConfiguration, baseConfig) => {
166
104
  ],
167
105
  network: isDockerDesktop ? network.name : 'host',
168
106
  mountVolumes: [
169
- `${
170
- !isDockerDesktop ? magentoDir : volumes.php.name
171
- }:${containerMagentoDir}`,
107
+ `${magentoDir}:${containerMagentoDir}${volumeDirective}`,
172
108
  `${volumes.composer_cache.name}:/composer/home/cache`,
173
- `${php.iniPath}:/usr/local/etc/php/php.ini`,
174
- `${php.fpmConfPath}:/usr/local/etc/php-fpm.d/zz-docker.conf`
175
- ].concat(
176
- ctx.debug
177
- ? [
178
- `${php.debugIniPath}:/usr/local/etc/php/conf.d/00-xdebug.ini`
179
- ]
180
- : []
181
- ),
109
+ `${php.iniPath}:/usr/local/etc/php/php.ini${volumeDirective}`,
110
+ `${php.fpmConfPath}:/usr/local/etc/php-fpm.d/zz-docker.conf${volumeDirective}`
111
+ ],
182
112
  env: deepmerge(composerAuthEnv, php.env || {}),
183
113
  restart: 'on-failure:5',
184
114
  image: `local-cma-project:${prefix}`,
185
- debugImage: `local-cma-project:${prefix}.debug`,
186
- remoteImages: [
187
- configuration.php.baseImage,
188
- configuration.php.debugImage
189
- ],
115
+ remoteImages: [configuration.php.baseImage],
190
116
  name: `${prefix}_php`,
191
117
  connectCommand: ['/bin/sh'],
192
118
  user:
@@ -195,6 +121,40 @@ module.exports = async (ctx, overridenConfiguration, baseConfig) => {
195
121
  ? `${os.userInfo().uid}:${os.userInfo().gid}`
196
122
  : ''
197
123
  },
124
+ phpWithXdebug: {
125
+ _: 'PHP with Xdebug',
126
+ ports: isDockerDesktop
127
+ ? [
128
+ `${isIpAddress(host) ? host : '127.0.0.1'}:${
129
+ ports.fpmXdebug
130
+ }:9000`
131
+ ]
132
+ : [],
133
+ forwardedPorts: [
134
+ isDockerDesktop
135
+ ? `127.0.0.1:${ports.fpmXdebug}:9000`
136
+ : `127.0.0.1:${ports.fpmXdebug}`
137
+ ],
138
+ network: isDockerDesktop ? network.name : 'host',
139
+ mountVolumes: [
140
+ `${magentoDir}:${containerMagentoDir}${volumeDirective}`,
141
+ `${volumes.composer_cache.name}:/composer/home/cache`,
142
+ `${php.iniPath}:/usr/local/etc/php/php.ini${volumeDirective}`,
143
+ `${php.debugFpmConfPath}:/usr/local/etc/php-fpm.d/zz-docker.conf${volumeDirective}`,
144
+ `${php.debugIniPath}:/usr/local/etc/php/conf.d/00-xdebug.ini${volumeDirective}`
145
+ ],
146
+ env: deepmerge(composerAuthEnv, php.env || {}),
147
+ restart: 'on-failure:5',
148
+ image: `local-cma-project:${prefix}.debug`,
149
+ pullImage: false,
150
+ name: `${prefix}_php_with_xdebug`,
151
+ connectCommand: ['/bin/sh'],
152
+ user:
153
+ (ctx.platform === 'linux' && isDockerDesktop) ||
154
+ !isDockerDesktop
155
+ ? `${os.userInfo().uid}:${os.userInfo().gid}`
156
+ : ''
157
+ },
198
158
  sslTerminator: {
199
159
  _: 'SSL Terminator (Nginx)',
200
160
  ports: isDockerDesktop
@@ -216,16 +176,16 @@ module.exports = async (ctx, overridenConfiguration, baseConfig) => {
216
176
  * Mount volumes directly on linux
217
177
  */
218
178
  mountVolumes: [
219
- `${
220
- !isDockerDesktop
221
- ? path.join(cacheDir, 'ssl-terminator', 'conf.d')
222
- : volumes.sslTerminator.name
223
- }:/etc/nginx/conf.d`,
179
+ `${path.join(
180
+ cacheDir,
181
+ 'ssl-terminator',
182
+ 'conf.d'
183
+ )}:/etc/nginx/conf.d${volumeDirective}`,
224
184
  `${path.join(
225
185
  cacheDir,
226
186
  'ssl-terminator',
227
187
  'fastcgi_params'
228
- )}:/etc/nginx/fastcgi_params`
188
+ )}:/etc/nginx/fastcgi_params${volumeDirective}`
229
189
  ],
230
190
  restart: 'on-failure:5',
231
191
  network: isDockerDesktop ? network.name : 'host',
@@ -255,39 +215,19 @@ module.exports = async (ctx, overridenConfiguration, baseConfig) => {
255
215
  /**
256
216
  * Mount volumes directly on linux
257
217
  */
258
- mountVolumes: !isDockerDesktop
259
- ? [
260
- `${cacheDir}/nginx/conf.d:/etc/nginx/conf.d`,
261
- `${path.join(magentoDir, 'pub')}:${path.join(
262
- containerMagentoDir,
263
- 'pub'
264
- )}`,
265
- `${path.join(magentoDir, 'setup')}:${path.join(
266
- containerMagentoDir,
267
- 'setup'
268
- )}`,
269
- `${path.join(
270
- cacheDir,
271
- 'ssl-terminator',
272
- 'fastcgi_params'
273
- )}:/etc/nginx/fastcgi_params`
274
- ]
275
- : [
276
- `${volumes.nginx.name}:/etc/nginx/conf.d`,
277
- `${volumes.appPub.name}:${path.join(
278
- containerMagentoDir,
279
- 'pub'
280
- )}`,
281
- `${volumes.appSetup.name}:${path.join(
282
- containerMagentoDir,
283
- 'setup'
284
- )}`,
285
- `${path.join(
286
- cacheDir,
287
- 'ssl-terminator',
288
- 'fastcgi_params'
289
- )}:/etc/nginx/fastcgi_params`
290
- ],
218
+ mountVolumes: [
219
+ `${path.join(
220
+ cacheDir,
221
+ 'nginx',
222
+ 'conf.d'
223
+ )}:/etc/nginx/conf.d${volumeDirective}`,
224
+ `${magentoDir}:${containerMagentoDir}${volumeDirective}`,
225
+ `${path.join(
226
+ cacheDir,
227
+ 'ssl-terminator',
228
+ 'fastcgi_params'
229
+ )}:/etc/nginx/fastcgi_params${volumeDirective}`
230
+ ],
291
231
  restart: 'on-failure:5',
292
232
  network: isDockerDesktop ? network.name : 'host',
293
233
  image: `${
@@ -314,7 +254,7 @@ module.exports = async (ctx, overridenConfiguration, baseConfig) => {
314
254
  mariadb: {
315
255
  _: 'MariaDB',
316
256
  healthCheck: {
317
- cmd: 'mysqladmin ping --silent'
257
+ cmd: 'mariadb-admin ping --silent'
318
258
  },
319
259
  ports: [`127.0.0.1:${ports.mariadb}:3306`],
320
260
  forwardedPorts: [`127.0.0.1:${ports.mariadb}:3306`],
@@ -323,7 +263,7 @@ module.exports = async (ctx, overridenConfiguration, baseConfig) => {
323
263
  `${path.join(
324
264
  baseConfig.cacheDir,
325
265
  'mariadb.cnf'
326
- )}:/etc/mysql/my.cnf`
266
+ )}:/etc/mysql/my.cnf${volumeDirective}`
327
267
  ],
328
268
  env: {
329
269
  MARIADB_ROOT_PASSWORD: 'scandipwa'
@@ -434,7 +374,7 @@ module.exports = async (ctx, overridenConfiguration, baseConfig) => {
434
374
  )
435
375
  }
436
376
 
437
- if (!ctx.debug && varnish.enabled) {
377
+ if (varnish.enabled) {
438
378
  dockerConfig.varnish = {
439
379
  _: 'Varnish',
440
380
  image: `${
@@ -444,11 +384,10 @@ module.exports = async (ctx, overridenConfiguration, baseConfig) => {
444
384
  }`,
445
385
  name: `${prefix}_varnish`,
446
386
  mountVolumes: [
447
- `${
448
- !isDockerDesktop
449
- ? path.join(cacheDir, 'varnish')
450
- : volumes.varnish.name
451
- }:/etc/varnish`
387
+ `${path.join(
388
+ cacheDir,
389
+ 'varnish'
390
+ )}:/etc/varnish${volumeDirective}`
452
391
  ],
453
392
  ports: isDockerDesktop
454
393
  ? [
@@ -1,4 +1,3 @@
1
- const { getProjectConfig } = require('./config')
2
1
  const { getConfigFromMagentoVersion } = require('./index')
3
2
 
4
3
  /**
@@ -9,10 +8,6 @@ const getProjectConfiguration = () => ({
9
8
  task: async (ctx) => {
10
9
  const { magentoVersion } = ctx
11
10
 
12
- if (typeof ctx.debug !== 'boolean') {
13
- ctx.debug = getProjectConfig().debug
14
- }
15
-
16
11
  ctx.config = await getConfigFromMagentoVersion(ctx, {
17
12
  magentoVersion
18
13
  })
@@ -11,6 +11,9 @@ module.exports = (overridenConfiguration, baseConfig) => {
11
11
 
12
12
  const { cacheDir } = baseConfig
13
13
 
14
+ /**
15
+ * @type {import('../../typings/context').ListrContext['config']['php']}
16
+ */
14
17
  const phpConfiguration = {
15
18
  iniPath: path.join(cacheDir, 'php.ini'),
16
19
  iniTemplatePath: php.configTemplate,
@@ -18,6 +21,7 @@ module.exports = (overridenConfiguration, baseConfig) => {
18
21
  debugTemplatePath: php.debugTemplate,
19
22
  fpmTemplatePath: php.fpmConfigTemplate,
20
23
  fpmConfPath: path.join(cacheDir, 'php-fpm.conf'),
24
+ debugFpmConfPath: path.join(cacheDir, 'php-fpm-debug.conf'),
21
25
  extensions: php.extensions,
22
26
  env: php.env
23
27
  }
@@ -72,6 +72,7 @@ const defaultPorts = {
72
72
  varnish: 8080,
73
73
  sslTerminator: 80,
74
74
  fpm: 9000,
75
+ fpmXdebug: 9001,
75
76
  mariadb: 3306,
76
77
  redis: 6379,
77
78
  elasticsearch: 9200,
@@ -2,7 +2,7 @@
2
2
  * @returns {import('../../../../../typings/index').ComposerConfiguration}
3
3
  */
4
4
  const composer28 = () => ({
5
- version: '2.8.5'
5
+ version: '2.8.8'
6
6
  })
7
7
 
8
8
  module.exports = composer28
@@ -0,0 +1,14 @@
1
+ const defaultEnv = require('../default-es-env')
2
+
3
+ /**
4
+ * @returns {import('../../../../../typings/index').ElasticSearchConfiguration}
5
+ */
6
+ const elasticsearch817 = () => ({
7
+ image: 'elasticsearch:8.17.4',
8
+ env: {
9
+ ...defaultEnv,
10
+ 'indices.id_field_data.enabled': true
11
+ }
12
+ })
13
+
14
+ module.exports = elasticsearch817
@@ -11,6 +11,7 @@ const elasticsearch85 = require('./elasticsearch-8.5')
11
11
  const elasticsearch87 = require('./elasticsearch-8.7')
12
12
  const elasticsearch811 = require('./elasticsearch-8.11')
13
13
  const elasticsearch816 = require('./elasticsearch-8.16')
14
+ const elasticsearch817 = require('./elasticsearch-8.17')
14
15
 
15
16
  module.exports = {
16
17
  elasticsearch68,
@@ -25,5 +26,6 @@ module.exports = {
25
26
  elasticsearch85,
26
27
  elasticsearch87,
27
28
  elasticsearch811,
28
- elasticsearch816
29
+ elasticsearch816,
30
+ elasticsearch817
29
31
  }
@@ -2,5 +2,7 @@ module.exports = {
2
2
  mariadb102: require('./mariadb-10.2'),
3
3
  mariadb103: require('./mariadb-10.3'),
4
4
  mariadb104: require('./mariadb-10.4'),
5
- mariadb106: require('./mariadb-10.6')
5
+ mariadb106: require('./mariadb-10.6'),
6
+ mariadb114: require('./mariadb-11.4'),
7
+ mariadb116: require('./mariadb-11.6')
6
8
  }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @returns {import('../../../../../typings/index').MariaDBConfiguration}
3
+ */
4
+ const mariadb114 = () => ({
5
+ image: 'mariadb:11.4',
6
+ useOptimizerSwitch: true
7
+ })
8
+
9
+ module.exports = mariadb114
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @returns {import('../../../../../typings/index').MariaDBConfiguration}
3
+ */
4
+ const mariadb116 = () => ({
5
+ image: 'mariadb:11.6',
6
+ useOptimizerSwitch: true
7
+ })
8
+
9
+ module.exports = mariadb116
@@ -2,10 +2,12 @@ const opensearch12 = require('./opensearch-1.2')
2
2
  const opensearch13 = require('./opensearch-1.3')
3
3
  const opensearch25 = require('./opensearch-2.5')
4
4
  const opensearch212 = require('./opensearch-2.12')
5
+ const opensearch219 = require('./opensearch-2.19')
5
6
 
6
7
  module.exports = {
7
8
  opensearch12,
8
9
  opensearch13,
9
10
  opensearch25,
10
- opensearch212
11
+ opensearch212,
12
+ opensearch219
11
13
  }
@@ -0,0 +1,14 @@
1
+ const defaultEnv = require('../default-os-env')
2
+
3
+ /**
4
+ * @returns {import('../../../../../typings/index').OpenSearchSearchConfiguration}
5
+ */
6
+ const opensearch219 = () => ({
7
+ image: 'opensearchproject/opensearch:2.19.1',
8
+ env: {
9
+ ...defaultEnv,
10
+ 'indices.id_field_data.enabled': true
11
+ }
12
+ })
13
+
14
+ module.exports = opensearch219
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @type {import('../../../../../typings/index').PHPExtensionInstallationInstruction}
3
+ */
4
+ module.exports = {
5
+ name: 'ftp',
6
+ command: 'docker-php-ext-install ftp'
7
+ }
@@ -3,5 +3,6 @@ module.exports = {
3
3
  php73: require('./php-7.3'),
4
4
  php74: require('./php-7.4'),
5
5
  php81: require('./php-8.1'),
6
- php82: require('./php-8.2')
6
+ php82: require('./php-8.2'),
7
+ php83: require('./php-8.3')
7
8
  }
@@ -16,7 +16,6 @@ const php72 = ({
16
16
  baseImage = `${repo}:php-7.2`
17
17
  }) => ({
18
18
  baseImage,
19
- debugImage: `${baseImage}-debug`,
20
19
  configTemplate: path.join(templateDir || '', 'php.template.ini'),
21
20
  fpmConfigTemplate: path.join(templateDir || '', 'php-fpm.template.conf'),
22
21
  debugTemplate: path.join(templateDir || '', 'php-debug.template.ini'),
@@ -16,7 +16,6 @@ const php73 = ({
16
16
  baseImage = `${repo}:php-7.3`
17
17
  }) => ({
18
18
  baseImage,
19
- debugImage: `${baseImage}-debug`,
20
19
  configTemplate: path.join(templateDir || '', 'php.template.ini'),
21
20
  fpmConfigTemplate: path.join(templateDir || '', 'php-fpm.template.conf'),
22
21
  debugTemplate: path.join(templateDir || '', 'php-debug.template.ini'),
@@ -16,7 +16,6 @@ const php74 = ({
16
16
  baseImage = `${repo}:php-7.4`
17
17
  }) => ({
18
18
  baseImage,
19
- debugImage: `${baseImage}-debug`,
20
19
  configTemplate: path.join(templateDir || '', 'php.template.ini'),
21
20
  fpmConfigTemplate: path.join(templateDir || '', 'php-fpm.template.conf'),
22
21
  debugTemplate: path.join(templateDir || '', 'php-debug.template.ini'),
@@ -16,12 +16,14 @@ const php81 = ({
16
16
  baseImage = `${repo}:php-8.1`
17
17
  }) => ({
18
18
  baseImage,
19
- debugImage: `${baseImage}-debug`,
20
19
  configTemplate: path.join(templateDir || '', 'php.template.ini'),
21
20
  fpmConfigTemplate: path.join(templateDir || '', 'php-fpm.template.conf'),
22
21
  debugTemplate: path.join(templateDir || '', 'php-debug.template.ini'),
23
22
  extensions: {
24
- xdebug,
23
+ xdebug: {
24
+ ...xdebug,
25
+ version: '3.4.2'
26
+ },
25
27
  ...extensions
26
28
  },
27
29
  env: defaultPhpEnv
@@ -16,14 +16,13 @@ const php82 = ({
16
16
  baseImage = `${repo}:php-8.2`
17
17
  }) => ({
18
18
  baseImage,
19
- debugImage: `${baseImage}-debug`,
20
19
  configTemplate: path.join(templateDir || '', 'php.template.ini'),
21
20
  fpmConfigTemplate: path.join(templateDir || '', 'php-fpm.template.conf'),
22
21
  debugTemplate: path.join(templateDir || '', 'php-debug.template.ini'),
23
22
  extensions: {
24
23
  xdebug: {
25
24
  ...xdebug,
26
- version: '3.2.1'
25
+ version: '3.4.2'
27
26
  },
28
27
  ...extensions
29
28
  },
@@ -0,0 +1,32 @@
1
+ const path = require('path')
2
+ const { repo } = require('../base-repo')
3
+ const xdebug = require('../extensions/xdebug')
4
+ const defaultPhpEnv = require('../default-php-env')
5
+
6
+ /**
7
+ * @param {Object} param0
8
+ * @param {string} param0.templateDir
9
+ * @param {import('../../../../../typings/index').PHPExtensions} [param0.extensions]
10
+ * @param {string} [param0.baseImage]
11
+ * @returns {import('../../../../../typings/index').PHPConfiguration}
12
+ */
13
+ const php83 = ({
14
+ templateDir,
15
+ extensions = {},
16
+ baseImage = `${repo}:php-8.3`
17
+ }) => ({
18
+ baseImage,
19
+ configTemplate: path.join(templateDir || '', 'php.template.ini'),
20
+ fpmConfigTemplate: path.join(templateDir || '', 'php-fpm.template.conf'),
21
+ debugTemplate: path.join(templateDir || '', 'php-debug.template.ini'),
22
+ extensions: {
23
+ xdebug: {
24
+ ...xdebug,
25
+ version: '3.4.2'
26
+ },
27
+ ...extensions
28
+ },
29
+ env: defaultPhpEnv
30
+ })
31
+
32
+ module.exports = php83