@scandipwa/magento-scripts 1.14.1-alpha.3 → 1.14.1-alpha.4

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 (67) hide show
  1. package/lib/commands/cli.js +28 -1
  2. package/lib/commands/execute.js +2 -1
  3. package/lib/config/docker.js +45 -9
  4. package/lib/config/get-port-config.js +2 -1
  5. package/lib/config/port-config.js +1 -0
  6. package/lib/config/templates/magentorc.template +3 -5
  7. package/lib/config/templates/php.template.ini +6 -4
  8. package/lib/config/templates/varnish.template.vcl +241 -0
  9. package/lib/config/versions/magento-2.3.0.js +9 -0
  10. package/lib/config/versions/magento-2.3.1.js +9 -0
  11. package/lib/config/versions/magento-2.3.2-p2.js +9 -0
  12. package/lib/config/versions/magento-2.3.2.js +9 -0
  13. package/lib/config/versions/magento-2.3.3-p1.js +9 -0
  14. package/lib/config/versions/magento-2.3.3.js +9 -0
  15. package/lib/config/versions/magento-2.3.4-p2.js +9 -0
  16. package/lib/config/versions/magento-2.3.4.js +9 -0
  17. package/lib/config/versions/magento-2.3.5-p1.js +9 -0
  18. package/lib/config/versions/magento-2.3.5-p2.js +9 -0
  19. package/lib/config/versions/magento-2.3.5.js +9 -0
  20. package/lib/config/versions/magento-2.3.6-p1.js +9 -0
  21. package/lib/config/versions/magento-2.3.6.js +9 -0
  22. package/lib/config/versions/magento-2.3.7-p1.js +9 -0
  23. package/lib/config/versions/magento-2.3.7-p2.js +9 -0
  24. package/lib/config/versions/magento-2.3.7-p3.js +9 -0
  25. package/lib/config/versions/magento-2.3.7.js +9 -0
  26. package/lib/config/versions/magento-2.4.0-p1.js +9 -0
  27. package/lib/config/versions/magento-2.4.0.js +9 -0
  28. package/lib/config/versions/magento-2.4.1-p1.js +9 -0
  29. package/lib/config/versions/magento-2.4.1.js +9 -0
  30. package/lib/config/versions/magento-2.4.2-p1.js +9 -0
  31. package/lib/config/versions/magento-2.4.2-p2.js +9 -0
  32. package/lib/config/versions/magento-2.4.2.js +9 -0
  33. package/lib/config/versions/magento-2.4.3-p1.js +9 -0
  34. package/lib/config/versions/magento-2.4.3-p2.js +9 -0
  35. package/lib/config/versions/magento-2.4.3.js +9 -0
  36. package/lib/config/versions/magento-2.4.4.js +9 -0
  37. package/lib/tasks/cli/create-bashrc-config.js +5 -2
  38. package/lib/tasks/docker/containers.js +10 -8
  39. package/lib/tasks/docker/volumes.js +4 -4
  40. package/lib/tasks/file-system/create-nginx-config.js +5 -0
  41. package/lib/tasks/file-system/create-varnish-config.js +51 -0
  42. package/lib/tasks/file-system/index.js +3 -1
  43. package/lib/tasks/magento/setup-magento/configure-elasticsearch.js +1 -1
  44. package/lib/tasks/magento/setup-magento/disable-2fa.js +4 -12
  45. package/lib/tasks/magento/setup-magento/disable-full-page-cache.js +20 -0
  46. package/lib/tasks/magento/setup-magento/increase-admin-session-lifetime.js +14 -16
  47. package/lib/tasks/magento/setup-magento/migrate-database.js +21 -6
  48. package/lib/tasks/magento/setup-magento/varnish-config.js +63 -0
  49. package/lib/tasks/mysql/fix-db.js +2 -2
  50. package/lib/tasks/php/index.js +1 -1
  51. package/lib/tasks/php/update-env-php.js +16 -1
  52. package/lib/tasks/php/update-env.php +54 -12
  53. package/lib/tasks/requirements/index.js +5 -5
  54. package/lib/tasks/requirements/php-version.js +3 -1
  55. package/lib/tasks/status/index.js +1 -1
  56. package/lib/tasks/theme/link-theme.js +2 -2
  57. package/lib/tasks/theme/setup-persisted-query.js +3 -3
  58. package/lib/tasks/theme/setup-themes.js +2 -2
  59. package/lib/util/config-file-validator.js +11 -1
  60. package/lib/util/config-php-json.js +19 -0
  61. package/lib/util/php-task.js +6 -2
  62. package/lib/util/run-php.js +7 -1
  63. package/package.json +2 -2
  64. package/typings/context.d.ts +1 -0
  65. package/typings/index.d.ts +19 -0
  66. package/lib/tasks/magento/setup-magento/adjust-magento-configuration.js +0 -27
  67. package/lib/tasks/magento/setup-magento/disable-page-cache.js +0 -11
@@ -18,6 +18,10 @@ module.exports = ({ templateDir } = {}) => ({
18
18
  SimpleXML: {},
19
19
  xdebug: {
20
20
  version: '3.1.2'
21
+ },
22
+ apcu: {},
23
+ opcache: {
24
+ extensionName: 'Zend OPcache'
21
25
  }
22
26
  }
23
27
  },
@@ -39,6 +43,11 @@ module.exports = ({ templateDir } = {}) => ({
39
43
  },
40
44
  composer: {
41
45
  version: '1'
46
+ },
47
+ varnish: {
48
+ enabled: true,
49
+ version: '6.3',
50
+ configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
42
51
  }
43
52
  },
44
53
  magento: defaultMagentoConfig,
@@ -18,6 +18,10 @@ module.exports = ({ templateDir } = {}) => ({
18
18
  SimpleXML: {},
19
19
  xdebug: {
20
20
  version: '3.1.2'
21
+ },
22
+ apcu: {},
23
+ opcache: {
24
+ extensionName: 'Zend OPcache'
21
25
  }
22
26
  }
23
27
  },
@@ -39,6 +43,11 @@ module.exports = ({ templateDir } = {}) => ({
39
43
  },
40
44
  composer: {
41
45
  version: '1'
46
+ },
47
+ varnish: {
48
+ enabled: true,
49
+ version: '6.3',
50
+ configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
42
51
  }
43
52
  },
44
53
  magento: defaultMagentoConfig,
@@ -18,6 +18,10 @@ module.exports = ({ templateDir } = {}) => ({
18
18
  SimpleXML: {},
19
19
  xdebug: {
20
20
  version: '3.1.2'
21
+ },
22
+ apcu: {},
23
+ opcache: {
24
+ extensionName: 'Zend OPcache'
21
25
  }
22
26
  }
23
27
  },
@@ -39,6 +43,11 @@ module.exports = ({ templateDir } = {}) => ({
39
43
  },
40
44
  composer: {
41
45
  version: '1'
46
+ },
47
+ varnish: {
48
+ enabled: true,
49
+ version: '6.3',
50
+ configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
42
51
  }
43
52
  },
44
53
  magento: defaultMagentoConfig,
@@ -18,6 +18,10 @@ module.exports = ({ templateDir } = {}) => ({
18
18
  SimpleXML: {},
19
19
  xdebug: {
20
20
  version: '3.1.2'
21
+ },
22
+ apcu: {},
23
+ opcache: {
24
+ extensionName: 'Zend OPcache'
21
25
  }
22
26
  }
23
27
  },
@@ -39,6 +43,11 @@ module.exports = ({ templateDir } = {}) => ({
39
43
  },
40
44
  composer: {
41
45
  version: '1'
46
+ },
47
+ varnish: {
48
+ enabled: true,
49
+ version: '6.4',
50
+ configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
42
51
  }
43
52
  },
44
53
  magento: defaultMagentoConfig,
@@ -18,6 +18,10 @@ module.exports = ({ templateDir } = {}) => ({
18
18
  SimpleXML: {},
19
19
  xdebug: {
20
20
  version: '3.1.2'
21
+ },
22
+ apcu: {},
23
+ opcache: {
24
+ extensionName: 'Zend OPcache'
21
25
  }
22
26
  }
23
27
  },
@@ -39,6 +43,11 @@ module.exports = ({ templateDir } = {}) => ({
39
43
  },
40
44
  composer: {
41
45
  version: '1'
46
+ },
47
+ varnish: {
48
+ enabled: true,
49
+ version: '6.4',
50
+ configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
42
51
  }
43
52
  },
44
53
  magento: defaultMagentoConfig,
@@ -16,6 +16,10 @@ module.exports = ({ templateDir } = {}) => ({
16
16
  SimpleXML: {},
17
17
  xdebug: {
18
18
  version: '3.1.2'
19
+ },
20
+ apcu: {},
21
+ opcache: {
22
+ extensionName: 'Zend OPcache'
19
23
  }
20
24
  }
21
25
  },
@@ -37,6 +41,11 @@ module.exports = ({ templateDir } = {}) => ({
37
41
  },
38
42
  composer: {
39
43
  version: '2'
44
+ },
45
+ varnish: {
46
+ enabled: true,
47
+ version: '6.5',
48
+ configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
40
49
  }
41
50
  },
42
51
  magento: defaultMagentoConfig,
@@ -16,6 +16,10 @@ module.exports = ({ templateDir } = {}) => ({
16
16
  SimpleXML: {},
17
17
  xdebug: {
18
18
  version: '3.1.2'
19
+ },
20
+ apcu: {},
21
+ opcache: {
22
+ extensionName: 'Zend OPcache'
19
23
  }
20
24
  }
21
25
  },
@@ -37,6 +41,11 @@ module.exports = ({ templateDir } = {}) => ({
37
41
  },
38
42
  composer: {
39
43
  version: '2'
44
+ },
45
+ varnish: {
46
+ enabled: true,
47
+ version: '6.5',
48
+ configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
40
49
  }
41
50
  },
42
51
  magento: defaultMagentoConfig,
@@ -16,6 +16,10 @@ module.exports = ({ templateDir } = {}) => ({
16
16
  SimpleXML: {},
17
17
  xdebug: {
18
18
  version: '3.1.2'
19
+ },
20
+ apcu: {},
21
+ opcache: {
22
+ extensionName: 'Zend OPcache'
19
23
  }
20
24
  }
21
25
  },
@@ -37,6 +41,11 @@ module.exports = ({ templateDir } = {}) => ({
37
41
  },
38
42
  composer: {
39
43
  version: '2'
44
+ },
45
+ varnish: {
46
+ enabled: true,
47
+ version: '6.5',
48
+ configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
40
49
  }
41
50
  },
42
51
  magento: defaultMagentoConfig,
@@ -16,6 +16,10 @@ module.exports = ({ templateDir } = {}) => ({
16
16
  SimpleXML: {},
17
17
  xdebug: {
18
18
  version: '3.1.2'
19
+ },
20
+ apcu: {},
21
+ opcache: {
22
+ extensionName: 'Zend OPcache'
19
23
  }
20
24
  }
21
25
  },
@@ -37,6 +41,11 @@ module.exports = ({ templateDir } = {}) => ({
37
41
  },
38
42
  composer: {
39
43
  version: '2'
44
+ },
45
+ varnish: {
46
+ enabled: true,
47
+ version: '6.5',
48
+ configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
40
49
  }
41
50
  },
42
51
  magento: defaultMagentoConfig,
@@ -16,6 +16,10 @@ module.exports = ({ templateDir } = {}) => ({
16
16
  SimpleXML: {},
17
17
  xdebug: {
18
18
  version: '3.1.2'
19
+ },
20
+ apcu: {},
21
+ opcache: {
22
+ extensionName: 'Zend OPcache'
19
23
  }
20
24
  }
21
25
  },
@@ -37,6 +41,11 @@ module.exports = ({ templateDir } = {}) => ({
37
41
  },
38
42
  composer: {
39
43
  version: '1'
44
+ },
45
+ varnish: {
46
+ enabled: true,
47
+ version: '6',
48
+ configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
40
49
  }
41
50
  },
42
51
  magento: defaultMagentoConfig,
@@ -16,6 +16,10 @@ module.exports = ({ templateDir } = {}) => ({
16
16
  SimpleXML: {},
17
17
  xdebug: {
18
18
  version: '3.1.2'
19
+ },
20
+ apcu: {},
21
+ opcache: {
22
+ extensionName: 'Zend OPcache'
19
23
  }
20
24
  }
21
25
  },
@@ -37,6 +41,11 @@ module.exports = ({ templateDir } = {}) => ({
37
41
  },
38
42
  composer: {
39
43
  version: '1'
44
+ },
45
+ varnish: {
46
+ enabled: true,
47
+ version: '6',
48
+ configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
40
49
  }
41
50
  },
42
51
  magento: defaultMagentoConfig,
@@ -18,6 +18,10 @@ module.exports = ({ templateDir } = {}) => ({
18
18
  libsodium,
19
19
  xdebug: {
20
20
  version: '3.1.2'
21
+ },
22
+ apcu: {},
23
+ opcache: {
24
+ extensionName: 'Zend OPcache'
21
25
  }
22
26
  }
23
27
  },
@@ -39,6 +43,11 @@ module.exports = ({ templateDir } = {}) => ({
39
43
  },
40
44
  composer: {
41
45
  version: '1'
46
+ },
47
+ varnish: {
48
+ enabled: true,
49
+ version: '6.2',
50
+ configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
42
51
  }
43
52
  },
44
53
  magento: defaultMagentoConfig,
@@ -16,6 +16,10 @@ module.exports = ({ templateDir } = {}) => ({
16
16
  SimpleXML: {},
17
17
  xdebug: {
18
18
  version: '3.1.2'
19
+ },
20
+ apcu: {},
21
+ opcache: {
22
+ extensionName: 'Zend OPcache'
19
23
  }
20
24
  }
21
25
  },
@@ -37,6 +41,11 @@ module.exports = ({ templateDir } = {}) => ({
37
41
  },
38
42
  composer: {
39
43
  version: '1'
44
+ },
45
+ varnish: {
46
+ enabled: true,
47
+ version: '6.2',
48
+ configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
40
49
  }
41
50
  },
42
51
  magento: defaultMagentoConfig,
@@ -20,6 +20,10 @@ module.exports = ({ templateDir } = {}) => ({
20
20
  fileinfo: {},
21
21
  xdebug: {
22
22
  version: '3.1.2'
23
+ },
24
+ apcu: {},
25
+ opcache: {
26
+ extensionName: 'Zend OPcache'
23
27
  }
24
28
  }
25
29
  },
@@ -41,6 +45,11 @@ module.exports = ({ templateDir } = {}) => ({
41
45
  },
42
46
  composer: {
43
47
  version: '2'
48
+ },
49
+ varnish: {
50
+ enabled: true,
51
+ version: '6.4',
52
+ configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
44
53
  }
45
54
  },
46
55
  magento: defaultMagentoConfig,
@@ -20,6 +20,10 @@ module.exports = ({ templateDir } = {}) => ({
20
20
  fileinfo: {},
21
21
  xdebug: {
22
22
  version: '3.1.2'
23
+ },
24
+ apcu: {},
25
+ opcache: {
26
+ extensionName: 'Zend OPcache'
23
27
  }
24
28
  }
25
29
  },
@@ -41,6 +45,11 @@ module.exports = ({ templateDir } = {}) => ({
41
45
  },
42
46
  composer: {
43
47
  version: '2'
48
+ },
49
+ varnish: {
50
+ enabled: true,
51
+ version: '6.4',
52
+ configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
44
53
  }
45
54
  },
46
55
  magento: defaultMagentoConfig,
@@ -19,6 +19,10 @@ module.exports = ({ templateDir } = {}) => ({
19
19
  fileinfo: {},
20
20
  xdebug: {
21
21
  version: '3.1.2'
22
+ },
23
+ apcu: {},
24
+ opcache: {
25
+ extensionName: 'Zend OPcache'
22
26
  }
23
27
  }
24
28
  },
@@ -40,6 +44,11 @@ module.exports = ({ templateDir } = {}) => ({
40
44
  },
41
45
  composer: {
42
46
  version: '2'
47
+ },
48
+ varnish: {
49
+ enabled: true,
50
+ version: '6.4',
51
+ configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
43
52
  }
44
53
  },
45
54
  magento: defaultMagentoConfig,
@@ -20,6 +20,10 @@ module.exports = ({ templateDir } = {}) => ({
20
20
  fileinfo: {},
21
21
  xdebug: {
22
22
  version: '3.1.2'
23
+ },
24
+ apcu: {},
25
+ opcache: {
26
+ extensionName: 'Zend OPcache'
23
27
  }
24
28
  }
25
29
  },
@@ -41,6 +45,11 @@ module.exports = ({ templateDir } = {}) => ({
41
45
  },
42
46
  composer: {
43
47
  version: '2'
48
+ },
49
+ varnish: {
50
+ enabled: true,
51
+ version: '6.5',
52
+ configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
44
53
  }
45
54
  },
46
55
  magento: defaultMagentoConfig,
@@ -20,6 +20,10 @@ module.exports = ({ templateDir } = {}) => ({
20
20
  fileinfo: {},
21
21
  xdebug: {
22
22
  version: '3.1.2'
23
+ },
24
+ apcu: {},
25
+ opcache: {
26
+ extensionName: 'Zend OPcache'
23
27
  }
24
28
  }
25
29
  },
@@ -41,6 +45,11 @@ module.exports = ({ templateDir } = {}) => ({
41
45
  },
42
46
  composer: {
43
47
  version: '2'
48
+ },
49
+ varnish: {
50
+ enabled: true,
51
+ version: '6.5',
52
+ configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
44
53
  }
45
54
  },
46
55
  magento: defaultMagentoConfig,
@@ -20,6 +20,10 @@ module.exports = ({ templateDir } = {}) => ({
20
20
  fileinfo: {},
21
21
  xdebug: {
22
22
  version: '3.1.2'
23
+ },
24
+ apcu: {},
25
+ opcache: {
26
+ extensionName: 'Zend OPcache'
23
27
  }
24
28
  }
25
29
  },
@@ -41,6 +45,11 @@ module.exports = ({ templateDir } = {}) => ({
41
45
  },
42
46
  composer: {
43
47
  version: '2'
48
+ },
49
+ varnish: {
50
+ enabled: true,
51
+ version: '6.5',
52
+ configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
44
53
  }
45
54
  },
46
55
  magento: defaultMagentoConfig,
@@ -20,6 +20,10 @@ module.exports = ({ templateDir } = {}) => ({
20
20
  fileinfo: {},
21
21
  xdebug: {
22
22
  version: '3.1.4'
23
+ },
24
+ apcu: {},
25
+ opcache: {
26
+ extensionName: 'Zend OPcache'
23
27
  }
24
28
  }
25
29
  },
@@ -41,6 +45,11 @@ module.exports = ({ templateDir } = {}) => ({
41
45
  },
42
46
  composer: {
43
47
  version: '2'
48
+ },
49
+ varnish: {
50
+ enabled: true,
51
+ version: '7.0',
52
+ configTemplate: path.join(templateDir || '', 'varnish.template.vcl')
44
53
  }
45
54
  },
46
55
  magento: defaultMagentoConfig,
@@ -6,14 +6,17 @@ const setConfigFile = require('../../util/set-config');
6
6
  */
7
7
  const createBashrcConfigFile = () => ({
8
8
  title: 'Setting Bashrc config',
9
- task: async ({ config: { php, baseConfig } }) => {
9
+ task: async (ctx) => {
10
+ const { config: { php, baseConfig, overridenConfiguration } } = ctx;
11
+ const varnishEnabled = overridenConfiguration.configuration.varnish.enabled;
10
12
  try {
11
13
  await setConfigFile({
12
14
  configPathname: path.join(baseConfig.cacheDir, '.magentorc'),
13
15
  template: path.join(baseConfig.templateDir, 'magentorc.template'),
14
16
  overwrite: true,
15
17
  templateArgs: {
16
- php
18
+ php,
19
+ varnishEnabled
17
20
  }
18
21
  });
19
22
  } catch (e) {
@@ -14,6 +14,7 @@ const { execAsyncSpawn } = require('../../util/exec-async-command');
14
14
  * @param {string} [options.command] Container command
15
15
  * @param {Record<"cmd" | "interval" | "retries" | "start-period" | "timeout", string>} [options.healthCheck] Container heathcheck properties
16
16
  * @param {string[]} [options.securityOptions] Security options [docs](https://docs.docker.com/engine/reference/commandline/run/#optional-security-options---security-opt)
17
+ * @param {string[]} [options.tmpfs]
17
18
  */
18
19
  const run = (options) => {
19
20
  const {
@@ -28,7 +29,8 @@ const run = (options) => {
28
29
  entrypoint,
29
30
  command = '',
30
31
  healthCheck,
31
- securityOptions = []
32
+ securityOptions = [],
33
+ tmpfs = []
32
34
  } = options;
33
35
 
34
36
  const restartArg = restart && `--restart ${ restart }`;
@@ -41,6 +43,7 @@ const run = (options) => {
41
43
  const entrypointArg = entrypoint && `--entrypoint "${entrypoint}"`;
42
44
  const healthCheckArg = healthCheck && Object.entries(healthCheck).map(([key, value]) => `--health-${key} '${value}'`).join(' ');
43
45
  const securityArg = securityOptions.length > 0 && securityOptions.map((opt) => `--security-opt ${opt}`).join(' ');
46
+ const tmpfsArg = tmpfs.length > 0 && tmpfs.map((t) => `--tmpfs ${t}`).join(' ');
44
47
 
45
48
  const dockerCommand = [
46
49
  'docker',
@@ -56,6 +59,7 @@ const run = (options) => {
56
59
  entrypointArg,
57
60
  healthCheckArg,
58
61
  securityArg,
62
+ tmpfsArg,
59
63
  image,
60
64
  command
61
65
  ].filter(Boolean).join(' ');
@@ -107,7 +111,7 @@ const pullContainers = () => ({
107
111
  const startContainers = () => ({
108
112
  title: 'Starting containers',
109
113
  task: async ({ ports, config: { docker } }, task) => {
110
- const containerList = await execAsyncSpawn('docker container ls');
114
+ const containerList = (await execAsyncSpawn('docker container ls --all --format="{{.Names}}"')).split('\n');
111
115
 
112
116
  const missingContainers = Object.values(docker.getContainers(ports)).filter(
113
117
  ({ name }) => !containerList.includes(name)
@@ -133,19 +137,17 @@ const startContainers = () => ({
133
137
  */
134
138
  const stopContainers = () => ({
135
139
  title: 'Stopping Docker containers',
136
- task: async ({ ports, config: { docker } }, task) => {
137
- const containerList = await execAsyncSpawn('docker container ls -a');
140
+ task: async ({ config: { baseConfig: { prefix } } }, task) => {
141
+ const containerList = (await execAsyncSpawn('docker container ls --all --format="{{.Names}}"')).split('\n');
138
142
 
139
- const runningContainers = Object.values(docker.getContainers(ports)).filter(
140
- ({ name }) => containerList.includes(name)
141
- );
143
+ const runningContainers = containerList.filter((containerName) => containerName.startsWith(prefix));
142
144
 
143
145
  if (runningContainers.length === 0) {
144
146
  task.skip();
145
147
  return;
146
148
  }
147
149
 
148
- await stop(runningContainers.map(({ name }) => name));
150
+ await stop(runningContainers);
149
151
  }
150
152
  });
151
153
 
@@ -20,10 +20,10 @@ const create = ({
20
20
  const createVolumes = () => ({
21
21
  title: 'Creating volumes',
22
22
  task: async ({ config: { docker } }, task) => {
23
- const volumeList = (await execAsyncSpawn('docker volume ls -q')).split('\n');
23
+ const volumeList = (await execAsyncSpawn('docker volume ls --format "{{.Name}}"')).split('\n');
24
24
 
25
25
  const missingVolumes = Object.values(docker.volumes).filter(
26
- ({ name }) => !volumeList.some((volume) => volume === name)
26
+ ({ name }) => !volumeList.includes(name)
27
27
  );
28
28
 
29
29
  if (missingVolumes.length === 0) {
@@ -41,10 +41,10 @@ const createVolumes = () => ({
41
41
  const removeVolumes = () => ({
42
42
  title: 'Removing volumes',
43
43
  task: async ({ config: { docker } }, task) => {
44
- const volumeList = (await execAsyncSpawn('docker volume ls -q')).split('\n');
44
+ const volumeList = (await execAsyncSpawn('docker volume ls --format "{{.Name}}"')).split('\n');
45
45
 
46
46
  const deployedVolumes = Object.values(docker.volumes).filter(
47
- ({ name }) => volumeList.some((volume) => volume === name)
47
+ ({ name }) => volumeList.includes(name)
48
48
  );
49
49
 
50
50
  if (deployedVolumes.length === 0) {
@@ -36,6 +36,11 @@ const createNginxConfig = () => ({
36
36
  throw new Error('ssl.ssl_certificate_key file does not exist!');
37
37
  }
38
38
 
39
+ const nginxCacheDir = path.join(baseConfig.cacheDir, 'nginx', 'conf.d');
40
+ if (!await pathExists(nginxCacheDir)) {
41
+ await fs.promises.mkdir(nginxCacheDir, { recursive: true });
42
+ }
43
+
39
44
  await fs.promises.copyFile(
40
45
  ssl.ssl_certificate,
41
46
  path.join(
@@ -0,0 +1,51 @@
1
+ const os = require('os');
2
+ const path = require('path');
3
+ const setConfigFile = require('../../util/set-config');
4
+
5
+ /**
6
+ * @type {() => import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
7
+ */
8
+ const createVarnishConfig = () => ({
9
+ title: 'Setting Varnish config',
10
+ skip: (ctx) => !ctx.config.overridenConfiguration.configuration.varnish.enabled,
11
+ task: async (ctx) => {
12
+ const {
13
+ ports,
14
+ config: {
15
+ overridenConfiguration,
16
+ baseConfig: {
17
+ cacheDir
18
+ }
19
+ },
20
+ isWsl
21
+ } = ctx;
22
+
23
+ const {
24
+ configuration: {
25
+ varnish
26
+ }
27
+ } = overridenConfiguration;
28
+
29
+ const isLinux = os.platform() === 'linux';
30
+
31
+ try {
32
+ await setConfigFile({
33
+ configPathname: path.join(
34
+ cacheDir,
35
+ 'varnish',
36
+ 'default.vcl'
37
+ ),
38
+ template: varnish.configTemplate,
39
+ overwrite: true,
40
+ templateArgs: {
41
+ hostMachine: (isLinux && !isWsl) ? '127.0.0.1' : 'host.docker.internal',
42
+ hostPort: (isLinux && !isWsl) ? ports.app : 80
43
+ }
44
+ });
45
+ } catch (e) {
46
+ throw new Error(`Unexpected error accrued during varnish config creation\n\n${e}`);
47
+ }
48
+ }
49
+ });
50
+
51
+ module.exports = createVarnishConfig;
@@ -2,6 +2,7 @@ const createNginxConfig = require('./create-nginx-config');
2
2
  const createPhpConfig = require('./create-php-config');
3
3
  const createPhpFpmConfig = require('./create-php-fpm-config');
4
4
  const createPhpStormConfig = require('./create-php-storm-config');
5
+ const createVarnishConfig = require('./create-varnish-config');
5
6
  const createVSCodeConfig = require('./create-vscode-config');
6
7
 
7
8
  /**
@@ -14,7 +15,8 @@ const prepareFileSystem = () => ({
14
15
  createPhpFpmConfig(),
15
16
  createPhpConfig(),
16
17
  createPhpStormConfig(),
17
- createVSCodeConfig()
18
+ createVSCodeConfig(),
19
+ createVarnishConfig()
18
20
  ], {
19
21
  concurrent: true
20
22
  })
@@ -4,7 +4,7 @@ const { updateTableValues, isTableExists } = require('../../../util/database');
4
4
  * @type {() => import('listr2').ListrTask<import('../../../../typings/context').ListrContext>}
5
5
  */
6
6
  module.exports = () => ({
7
- title: 'Configuring elasticsearch',
7
+ title: 'Configuring Elasticsearch',
8
8
  skip: async (ctx) => !(await isTableExists('magento', 'core_config_data', ctx)),
9
9
  task: async ({ ports, mysqlConnection }, task) => {
10
10
  await updateTableValues('core_config_data', [