@scandipwa/magento-scripts 1.14.1-alpha.1 → 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 (110) hide show
  1. package/index.js +13 -0
  2. package/lib/commands/cli.js +28 -1
  3. package/lib/commands/execute.js +2 -1
  4. package/lib/config/docker.js +45 -9
  5. package/lib/config/get-port-config.js +2 -1
  6. package/lib/config/port-config.js +1 -0
  7. package/lib/config/templates/magentorc.template +3 -5
  8. package/lib/config/templates/php.template.ini +6 -4
  9. package/lib/config/templates/varnish.template.vcl +241 -0
  10. package/lib/config/versions/magento-2.3.0.js +9 -0
  11. package/lib/config/versions/magento-2.3.1.js +9 -0
  12. package/lib/config/versions/magento-2.3.2-p2.js +9 -0
  13. package/lib/config/versions/magento-2.3.2.js +9 -0
  14. package/lib/config/versions/magento-2.3.3-p1.js +9 -0
  15. package/lib/config/versions/magento-2.3.3.js +9 -0
  16. package/lib/config/versions/magento-2.3.4-p2.js +9 -0
  17. package/lib/config/versions/magento-2.3.4.js +9 -0
  18. package/lib/config/versions/magento-2.3.5-p1.js +9 -0
  19. package/lib/config/versions/magento-2.3.5-p2.js +9 -0
  20. package/lib/config/versions/magento-2.3.5.js +9 -0
  21. package/lib/config/versions/magento-2.3.6-p1.js +9 -0
  22. package/lib/config/versions/magento-2.3.6.js +9 -0
  23. package/lib/config/versions/magento-2.3.7-p1.js +9 -0
  24. package/lib/config/versions/magento-2.3.7-p2.js +9 -0
  25. package/lib/config/versions/magento-2.3.7-p3.js +9 -0
  26. package/lib/config/versions/magento-2.3.7.js +9 -0
  27. package/lib/config/versions/magento-2.4.0-p1.js +9 -0
  28. package/lib/config/versions/magento-2.4.0.js +9 -0
  29. package/lib/config/versions/magento-2.4.1-p1.js +9 -0
  30. package/lib/config/versions/magento-2.4.1.js +9 -0
  31. package/lib/config/versions/magento-2.4.2-p1.js +9 -0
  32. package/lib/config/versions/magento-2.4.2-p2.js +9 -0
  33. package/lib/config/versions/magento-2.4.2.js +9 -0
  34. package/lib/config/versions/magento-2.4.3-p1.js +9 -0
  35. package/lib/config/versions/magento-2.4.3-p2.js +9 -0
  36. package/lib/config/versions/magento-2.4.3.js +9 -0
  37. package/lib/config/versions/magento-2.4.4.js +9 -0
  38. package/lib/tasks/cli/create-bashrc-config.js +5 -2
  39. package/lib/tasks/docker/containers.js +10 -8
  40. package/lib/tasks/docker/volumes.js +4 -4
  41. package/lib/tasks/file-system/create-nginx-config.js +5 -0
  42. package/lib/tasks/file-system/create-php-storm-config.js +82 -0
  43. package/lib/tasks/file-system/create-varnish-config.js +51 -0
  44. package/lib/tasks/file-system/index.js +4 -2
  45. package/lib/tasks/magento/setup-magento/configure-elasticsearch.js +1 -1
  46. package/lib/tasks/magento/setup-magento/disable-2fa.js +4 -12
  47. package/lib/tasks/magento/setup-magento/disable-full-page-cache.js +20 -0
  48. package/lib/tasks/magento/setup-magento/increase-admin-session-lifetime.js +14 -16
  49. package/lib/tasks/magento/setup-magento/migrate-database.js +21 -6
  50. package/lib/tasks/magento/setup-magento/varnish-config.js +63 -0
  51. package/lib/tasks/mysql/fix-db.js +2 -2
  52. package/lib/tasks/php/index.js +1 -1
  53. package/lib/tasks/php/update-env-php.js +16 -1
  54. package/lib/tasks/php/update-env.php +54 -12
  55. package/lib/tasks/requirements/docker/index.js +2 -0
  56. package/lib/tasks/requirements/docker/install.js +11 -11
  57. package/lib/tasks/requirements/docker/running-status.js +137 -0
  58. package/lib/tasks/requirements/docker/version.js +2 -0
  59. package/lib/tasks/requirements/index.js +5 -5
  60. package/lib/tasks/requirements/php-version.js +3 -1
  61. package/lib/tasks/start.js +2 -6
  62. package/lib/tasks/status/index.js +1 -1
  63. package/lib/tasks/theme/link-theme.js +2 -2
  64. package/lib/tasks/theme/setup-persisted-query.js +3 -3
  65. package/lib/tasks/theme/setup-themes.js +2 -2
  66. package/lib/util/config-file-validator.js +11 -1
  67. package/lib/util/config-php-json.js +19 -0
  68. package/lib/util/instance-metadata.js +1 -7
  69. package/lib/util/is-running-root.js +3 -0
  70. package/lib/util/php-task.js +6 -2
  71. package/lib/util/run-php.js +7 -1
  72. package/lib/util/systemctl.js +46 -0
  73. package/package.json +2 -3
  74. package/typings/context.d.ts +1 -2
  75. package/typings/index.d.ts +19 -0
  76. package/lib/config/xml-parser.js +0 -61
  77. package/lib/tasks/file-system/create-phpstorm-config/database-config.js +0 -248
  78. package/lib/tasks/file-system/create-phpstorm-config/eslint-config.js +0 -83
  79. package/lib/tasks/file-system/create-phpstorm-config/exclude-folder-config.js +0 -154
  80. package/lib/tasks/file-system/create-phpstorm-config/index.js +0 -27
  81. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/coding-standard-config.js +0 -29
  82. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/config.js +0 -54
  83. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/custom-ruleset-path-config.js +0 -31
  84. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/default-properties-config.js +0 -42
  85. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/eslint-inspection-config.js +0 -37
  86. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/index.js +0 -80
  87. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/magento-coding-standard-config.js +0 -29
  88. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/mess-detector-validation-inspection-config.js +0 -145
  89. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/paths.js +0 -20
  90. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/php-cs-fixer-validation-inspection-config.js +0 -60
  91. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/php-cs-validation-inspection-config.js +0 -119
  92. package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/stylelint-inspection-config.js +0 -37
  93. package/lib/tasks/file-system/create-phpstorm-config/keys.js +0 -14
  94. package/lib/tasks/file-system/create-phpstorm-config/php-config/index.js +0 -67
  95. package/lib/tasks/file-system/create-phpstorm-config/php-config/mess-detector-config.js +0 -57
  96. package/lib/tasks/file-system/create-phpstorm-config/php-config/php-code-sniffer-config.js +0 -76
  97. package/lib/tasks/file-system/create-phpstorm-config/php-config/php-cs-fixer-config.js +0 -63
  98. package/lib/tasks/file-system/create-phpstorm-config/php-config/php-project-shared-configuration-config.js +0 -69
  99. package/lib/tasks/file-system/create-phpstorm-config/stylelint-config.js +0 -77
  100. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/composer-settings-config.js +0 -98
  101. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/format-setting-config.js +0 -57
  102. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/index.js +0 -66
  103. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-debug-general-config.js +0 -64
  104. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-server-config.js +0 -60
  105. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/properties-component-config.js +0 -51
  106. package/lib/tasks/file-system/create-phpstorm-config/workspace-config/run-manager-config.js +0 -74
  107. package/lib/tasks/file-system/create-phpstorm-config/xml-utils.js +0 -5
  108. package/lib/tasks/magento/setup-magento/adjust-magento-configuration.js +0 -27
  109. package/lib/tasks/magento/setup-magento/disable-page-cache.js +0 -11
  110. package/typings/phpstorm.d.ts +0 -33
@@ -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.2',
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.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(