|
| 1 | +<?php |
| 2 | + |
| 3 | +namespace EE\Migration; |
| 4 | + |
| 5 | +use EE; |
| 6 | +use EE\Migration\Base; |
| 7 | + |
| 8 | +class CheckAndUpdateDocker extends Base { |
| 9 | + |
| 10 | + /** |
| 11 | + * Execute create table query for site and sitemeta table. |
| 12 | + * |
| 13 | + * @throws EE\ExitException |
| 14 | + */ |
| 15 | + public function up() { |
| 16 | + |
| 17 | + EE::log( 'Checking Docker version.' ); |
| 18 | + $docker_version = EE::launch( 'docker version --format "{{.Server.Version}}"' )->stdout; |
| 19 | + |
| 20 | + if ( version_compare( $docker_version, '20.10.10', '<' ) ) { |
| 21 | + EE::warning( 'Docker version should be 20.10.10 or above.' ); |
| 22 | + |
| 23 | + // If it is MacOS, prompt user to update docker. |
| 24 | + if ( 'Darwin' === PHP_OS ) { |
| 25 | + EE::confirm( 'Do you want to update Docker?' ); |
| 26 | + EE::launch( 'open "docker://"' ); |
| 27 | + } |
| 28 | + |
| 29 | + // If it is Linux, proceed with update. |
| 30 | + if ( 'Linux' === PHP_OS ) { |
| 31 | + EE::log( 'Updating Docker...' ); |
| 32 | + EE::launch( 'curl -fsSL https://get.docker.com | sh' ); |
| 33 | + } |
| 34 | + } |
| 35 | + |
| 36 | + // Check the version again post update. |
| 37 | + $docker_version = EE::launch( 'docker version --format "{{.Server.Version}}"' )->stdout; |
| 38 | + if ( version_compare( $docker_version, '20.10.10', '<' ) ) { |
| 39 | + EE::error( 'Docker version should be 20.10.10 or above. Please update Docker and try again.' ); |
| 40 | + } |
| 41 | + } |
| 42 | + |
| 43 | + /** |
| 44 | + * Execute drop table query for site and sitemeta table. |
| 45 | + * |
| 46 | + * @throws EE\ExitException |
| 47 | + */ |
| 48 | + public function down() { |
| 49 | + |
| 50 | + } |
| 51 | +} |
0 commit comments