From fd4ad83ee452f536ce8ddb773d99a6d01d6e4d09 Mon Sep 17 00:00:00 2001 From: sagarnasit Date: Thu, 10 Jan 2019 19:12:37 +0530 Subject: [PATCH 1/3] Add cron service detail in docker-compose.yml --- src/helper/service-utils.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/helper/service-utils.php b/src/helper/service-utils.php index 541ce3b..9a311ea 100644 --- a/src/helper/service-utils.php +++ b/src/helper/service-utils.php @@ -279,6 +279,15 @@ function generate_global_docker_compose_yml( Filesystem $fs ) { 'global-backend-network', ], ], + [ + 'name' => EE_CRON_SERVICE, + 'image' => 'easyengine/cron:' . $img_versions['easyengine/cron'], + 'restart' => 'always', + 'volumes' => [ + '/opt/easyengine/services/cron:/etc/ofelia:ro', + '/var/run/docker.sock:/var/run/docker.sock:ro', + ], + ], ]; Option::set( GLOBAL_DB, $password ); From 07b736b5a90ec71bc4dafc5bcba139be9a4e5624 Mon Sep 17 00:00:00 2001 From: sagarnasit Date: Thu, 10 Jan 2019 19:12:57 +0530 Subject: [PATCH 2/3] Add migration for cron container --- ...ervice-command_add_cron_global_service.php | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 migrations/container/20190110064350_service-command_add_cron_global_service.php diff --git a/migrations/container/20190110064350_service-command_add_cron_global_service.php b/migrations/container/20190110064350_service-command_add_cron_global_service.php new file mode 100644 index 0000000..21dd3c0 --- /dev/null +++ b/migrations/container/20190110064350_service-command_add_cron_global_service.php @@ -0,0 +1,108 @@ +is_first_execution ) { + $this->skip_this_migration = true; + } + } + + /** + * Execute global service container name update. + * + * @throws EE\ExitException + */ + public function up() { + + if ( $this->skip_this_migration ) { + EE::debug( 'Skipping add-cron-global-service migration as it is not needed.' ); + + return; + } + + EE::debug( 'Starting add-cron-global-service' ); + self::$rsp = new EE\RevertableStepProcessor(); + + $global_compose_file_path = EE_ROOT_DIR . '/services/docker-compose.yml'; + $global_compose_file_backup_path = EE_BACKUP_DIR . '/services/docker-compose.yml.backup'; + + $old_container = 'running' !== \EE_DOCKER::container_status( 'ee-cron-scheduler' ); + + /** + * Backup old docker-compose file. + */ + self::$rsp->add_step( + 'backup-global-docker-compose-file', + 'EE\Migration\SiteContainers::backup_restore', + 'EE\Migration\SiteContainers::backup_restore', + [ $global_compose_file_path, $global_compose_file_backup_path ], + [ $global_compose_file_backup_path, $global_compose_file_path ] + ); + + /** + * Generate new docker-compose file. + */ + self::$rsp->add_step( + 'generate-global-docker-compose-file', + 'EE\Service\Utils\generate_global_docker_compose_yml', + null, + [ new \Symfony\Component\Filesystem\Filesystem() ], + null + ); + + if ( $old_container ) { + /** + * Start global-cron service container. + */ + self::$rsp->add_step( + 'enable-global-cron-service', + 'EE\Migration\GlobalContainers::global_service_up', + null, + [ EE_CRON_SERVICE ], + [] + ); + + /** + * Remove ee-cron-scheduler container. + */ + self::$rsp->add_step( + 'remove-ee-cron-scheduler-container', + 'EE\Migration\AddCronGlobalService::remove_old_cron_container', + null, + [], + [] + ); + } + + if ( ! self::$rsp->execute() ) { + throw new \Exception( 'Unable run add-cron-global-service migrations.' ); + } + } + + /** + * No need for down. + * + * @throws EE\ExitException + */ + public function down() { + } + + public static function remove_old_cron_container() { + + if ( ! EE::exec( 'docker rm -f ee-cron-scheduler' ) ) { + throw new \Exception( 'Unable to remove ee-cron-scheduler container' ); + } + } +} From 00135719110c515bf01121883b070e2d4027b98d Mon Sep 17 00:00:00 2001 From: sagarnasit Date: Thu, 10 Jan 2019 19:36:56 +0530 Subject: [PATCH 3/3] Change condition --- .../20190110064350_service-command_add_cron_global_service.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/migrations/container/20190110064350_service-command_add_cron_global_service.php b/migrations/container/20190110064350_service-command_add_cron_global_service.php index 21dd3c0..fd71da0 100644 --- a/migrations/container/20190110064350_service-command_add_cron_global_service.php +++ b/migrations/container/20190110064350_service-command_add_cron_global_service.php @@ -38,7 +38,7 @@ public function up() { $global_compose_file_path = EE_ROOT_DIR . '/services/docker-compose.yml'; $global_compose_file_backup_path = EE_BACKUP_DIR . '/services/docker-compose.yml.backup'; - $old_container = 'running' !== \EE_DOCKER::container_status( 'ee-cron-scheduler' ); + $old_container = 'running' === \EE_DOCKER::container_status( 'ee-cron-scheduler' ); /** * Backup old docker-compose file.