From edc8939c30e072478b15acebf22041ce32b85c1c Mon Sep 17 00:00:00 2001 From: Riddhesh Sanghvi Date: Fri, 10 Aug 2018 15:52:09 +0530 Subject: [PATCH 1/6] Add docker-image version maintainer file Signed-off-by: Riddhesh Sanghvi --- img-versions.json | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 img-versions.json diff --git a/img-versions.json b/img-versions.json new file mode 100644 index 000000000..5c0736e67 --- /dev/null +++ b/img-versions.json @@ -0,0 +1,10 @@ +{ + "easyengine/mailhog": "v4.0.0-beta.5", + "easyengine/mariadb": "v4.0.0-beta.5", + "easyengine/nginx-proxy": "v4.0.0-beta.5", + "easyengine/nginx": "v4.0.0-beta.5", + "easyengine/php": "v4.0.0-beta.5", + "easyengine/phpmyadmin": "v4.0.0-beta.5", + "easyengine/postfix": "v4.0.0-beta.5", + "easyengine/redis": "v4.0.0-beta.5" +} From c42f0bcdadf4aa9a7eae75efd69097f3ba08ee60 Mon Sep 17 00:00:00 2001 From: Riddhesh Sanghvi Date: Fri, 10 Aug 2018 15:52:30 +0530 Subject: [PATCH 2/6] Add function to get versions Signed-off-by: Riddhesh Sanghvi --- php/utils.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/php/utils.php b/php/utils.php index 6f7684ec9..666369408 100644 --- a/php/utils.php +++ b/php/utils.php @@ -1545,3 +1545,13 @@ function get_callable_name( callable $callable ) { return 'unknown'; } } + +/** + * Function to get the docker image versions stored in img-versions.json file. + * + * @return array Docker image versions. + */ +function get_image_versions() { + + return json_decode( file_get_contents( EE_ROOT . '/img-versions.json' ), true ); +} From 3f1a0c4d3bfef24dc173209c9cefa04da92d049c Mon Sep 17 00:00:00 2001 From: Riddhesh Sanghvi Date: Fri, 10 Aug 2018 15:53:16 +0530 Subject: [PATCH 3/6] Get image version from utils Signed-off-by: Riddhesh Sanghvi --- php/site-utils.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/php/site-utils.php b/php/site-utils.php index 621a13640..5e9eaf7ac 100644 --- a/php/site-utils.php +++ b/php/site-utils.php @@ -86,7 +86,8 @@ function init_checks() { EE::error( 'Cannot create/start proxy container. Please make sure port 80 and 443 are free.' ); } else { $EE_CONF_ROOT = EE_CONF_ROOT; - $ee_proxy_command = "docker run --name $proxy_type -e LOCAL_USER_ID=`id -u` -e LOCAL_GROUP_ID=`id -g` --restart=always -d -p 80:80 -p 443:443 -v $EE_CONF_ROOT/nginx/certs:/etc/nginx/certs -v $EE_CONF_ROOT/nginx/dhparam:/etc/nginx/dhparam -v $EE_CONF_ROOT/nginx/conf.d:/etc/nginx/conf.d -v $EE_CONF_ROOT/nginx/htpasswd:/etc/nginx/htpasswd -v $EE_CONF_ROOT/nginx/vhost.d:/etc/nginx/vhost.d -v /var/run/docker.sock:/tmp/docker.sock:ro -v $EE_CONF_ROOT:/app/ee4 -v /usr/share/nginx/html easyengine/nginx-proxy:v" . EE_VERSION; + $img_versions = EE\Utils\get_image_versions(); + $ee_proxy_command = "docker run --name $proxy_type -e LOCAL_USER_ID=`id -u` -e LOCAL_GROUP_ID=`id -g` --restart=always -d -p 80:80 -p 443:443 -v $EE_CONF_ROOT/nginx/certs:/etc/nginx/certs -v $EE_CONF_ROOT/nginx/dhparam:/etc/nginx/dhparam -v $EE_CONF_ROOT/nginx/conf.d:/etc/nginx/conf.d -v $EE_CONF_ROOT/nginx/htpasswd:/etc/nginx/htpasswd -v $EE_CONF_ROOT/nginx/vhost.d:/etc/nginx/vhost.d -v /var/run/docker.sock:/tmp/docker.sock:ro -v $EE_CONF_ROOT:/app/ee4 -v /usr/share/nginx/html easyengine/nginx-proxy:" . $img_versions['easyengine/nginx-proxy']; if ( EE::docker()::boot_container( $proxy_type, $ee_proxy_command ) ) { From f7ae513a2ff87c6f5a004e28fdd3a8720508fe48 Mon Sep 17 00:00:00 2001 From: Riddhesh Sanghvi Date: Tue, 21 Aug 2018 16:05:55 +0530 Subject: [PATCH 4/6] Get image versions in migrations from utils Signed-off-by: Riddhesh Sanghvi --- php/EE/Migration/Containers.php | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/php/EE/Migration/Containers.php b/php/EE/Migration/Containers.php index 2fed51e41..626186054 100644 --- a/php/EE/Migration/Containers.php +++ b/php/EE/Migration/Containers.php @@ -37,15 +37,17 @@ public static function start_container_migration() { * Pulls new images of all containers used by easyengine */ private static function pull_new_images() { - self::pull_or_error( 'easyengine/php', 'v' . EE_VERSION ); - self::pull_or_error( 'easyengine/cron', 'v' . EE_VERSION ); - self::pull_or_error( 'easyengine/redis', 'v' . EE_VERSION ); - self::pull_or_error( 'easyengine/nginx', 'v' . EE_VERSION ); - self::pull_or_error( 'easyengine/postfix', 'v' . EE_VERSION ); - self::pull_or_error( 'easyengine/mailhog', 'v' . EE_VERSION ); - self::pull_or_error( 'easyengine/mariadb', 'v' . EE_VERSION ); - self::pull_or_error( 'easyengine/phpmyadmin', 'v' . EE_VERSION ); - self::pull_or_error( 'easyengine/nginx-proxy', 'v' . EE_VERSION ); + + $img_versions = EE\Utils\get_image_versions(); + self::pull_or_error( 'easyengine/php', $img_versions['easyengine/php'] ); + self::pull_or_error( 'easyengine/cron', $img_versions['easyengine/cron'] ); + self::pull_or_error( 'easyengine/redis', $img_versions['easyengine/redis'] ); + self::pull_or_error( 'easyengine/nginx', $img_versions['easyengine/nginx'] ); + self::pull_or_error( 'easyengine/postfix', $img_versions['easyengine/postfix'] ); + self::pull_or_error( 'easyengine/mailhog', $img_versions['easyengine/mailhog'] ); + self::pull_or_error( 'easyengine/mariadb', $img_versions['easyengine/mariadb'] ); + self::pull_or_error( 'easyengine/phpmyadmin', $img_versions['easyengine/phpmyadmin'] ); + self::pull_or_error( 'easyengine/nginx-proxy', $img_versions['easyengine/nginx-proxy'] ); } /** From 5a02703afc1c30cdfa82dd50861e5485d789b462 Mon Sep 17 00:00:00 2001 From: Riddhesh Sanghvi Date: Tue, 21 Aug 2018 16:22:11 +0530 Subject: [PATCH 5/6] Update json handling validations Signed-off-by: Riddhesh Sanghvi --- php/utils.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/php/utils.php b/php/utils.php index 666369408..3bf1140c8 100644 --- a/php/utils.php +++ b/php/utils.php @@ -1553,5 +1553,16 @@ function get_callable_name( callable $callable ) { */ function get_image_versions() { - return json_decode( file_get_contents( EE_ROOT . '/img-versions.json' ), true ); + $img_version_file = file_get_contents( EE_ROOT . '/img-versions.json' ); + if ( empty( $img_version_file ) ) { + EE::error( 'Image version file is empty. Can\'t proceed further.' ); + } + $img_versions = json_decode( $img_version_file, true ); + $json_error = json_last_error(); + if ( $json_error != JSON_ERROR_NONE ) { + EE::debug( 'Json last error: ' . $json_error ); + EE::error( 'Error decoding image version file.' ); + } + + return $img_versions; } From 5b41f5aaf2cba94660460e7307ca5b871e6cd3fb Mon Sep 17 00:00:00 2001 From: Riddhesh Sanghvi Date: Tue, 21 Aug 2018 16:22:27 +0530 Subject: [PATCH 6/6] Add remaining images Signed-off-by: Riddhesh Sanghvi --- img-versions.json | 1 + 1 file changed, 1 insertion(+) diff --git a/img-versions.json b/img-versions.json index 5c0736e67..eb24e2c9a 100644 --- a/img-versions.json +++ b/img-versions.json @@ -1,4 +1,5 @@ { + "easyengine/cron": "v4.0.0-beta.5", "easyengine/mailhog": "v4.0.0-beta.5", "easyengine/mariadb": "v4.0.0-beta.5", "easyengine/nginx-proxy": "v4.0.0-beta.5",