From 7dc7c01e97ff28ecdd2d3660751f9dfdab7d8fb5 Mon Sep 17 00:00:00 2001 From: Josh Calder Date: Thu, 28 Jul 2016 04:10:17 +1000 Subject: [PATCH] =?UTF-8?q?Added=20Concrete5=20CMS=20Template.=20with=20au?= =?UTF-8?q?to=20configuration=20in=20v0.2=20or=20manua=E2=80=A6=20(#170)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added Concrete5 CMS Template with auto configuration in v0.2 or manual config in v0.1 * List maintainer. * Changing to mysql as mariadb was giving timeout errors. Changing to mysql has fixed this. * Change log to single .png * Change default site name to "MySite" --- templates/Concrete5/0/docker-compose.yml | 27 +++++++ templates/Concrete5/0/rancher-compose.yml | 57 +++++++++++++ templates/Concrete5/1/docker-compose.yml | 43 ++++++++++ templates/Concrete5/1/rancher-compose.yml | 76 ++++++++++++++++++ templates/Concrete5/catalogIcon-concrete5.png | Bin 0 -> 33330 bytes templates/Concrete5/config.yml | 7 ++ 6 files changed, 210 insertions(+) create mode 100755 templates/Concrete5/0/docker-compose.yml create mode 100755 templates/Concrete5/0/rancher-compose.yml create mode 100644 templates/Concrete5/1/docker-compose.yml create mode 100644 templates/Concrete5/1/rancher-compose.yml create mode 100644 templates/Concrete5/catalogIcon-concrete5.png create mode 100644 templates/Concrete5/config.yml diff --git a/templates/Concrete5/0/docker-compose.yml b/templates/Concrete5/0/docker-compose.yml new file mode 100755 index 0000000..57e0ed9 --- /dev/null +++ b/templates/Concrete5/0/docker-compose.yml @@ -0,0 +1,27 @@ +CMSMysql: + environment: + MYSQL_ROOT_PASSWORD: ${root_password} + MYSQL_DATABASE: ${db_name} + MYSQL_USER: ${db_userame} + MYSQL_PASSWORD: ${db_password} + labels: + io.rancher.container.pull_image: always + tty: true + image: mysql + volumes: + - ${db_data_location}:/var/lib/mysql + stdin_open: true + volume_driver: ${volume_driver} + +Concrete5App: + labels: + io.rancher.container.pull_image: always + tty: true + image: opensaas/concrete5 + links: + - CMSMysql:mysql + volumes: + - ${cms_application_data}:/var/www/html/application + - ${cms_packages_data}:/var/www/html/packages + stdin_open: true + volume_driver: ${volume_driver} \ No newline at end of file diff --git a/templates/Concrete5/0/rancher-compose.yml b/templates/Concrete5/0/rancher-compose.yml new file mode 100755 index 0000000..9dc880a --- /dev/null +++ b/templates/Concrete5/0/rancher-compose.yml @@ -0,0 +1,57 @@ +.catalog: + name: "Concrete5" + version: "v0.1" + description: "Concrete5 CMS" + uuid: Concrete5-0 + minimum_rancher_version: v0.51.0 + questions: + - variable: root_password + description: "MySQL root password - keep this password complex and secure" + label: "MySQL Root Password" + required: true + default: "password" + type: "string" + - variable: db_name + description: "MySQL Database Name - to use in the Concrete5 setup" + label: "MySQL Database Name" + required: true + default: "CMS_DB" + type: "string" + - variable: db_username + description: "MySQL Username - to use in the Concrete5 setup" + label: "MySQL Username" + required: true + default: "CMS_USER" + type: "string" + - variable: db_password + description: "MySQL password for the above user - to use in the Concrete5 setup" + label: "MySQL Password" + required: true + default: "password" + type: "string" + - variable: db_data_location + description: "Location on the host for the database files" + label: "DB Data Location" + required: true + default: "CMS_DB_DATA" + type: "string" + - variable: volume_driver + description: "Volume Driver for the persistant data locations requires docker 1.7" + label: "Volume Driver" + type: "string" + - variable: cms_application_data + description: "Concrcte5 application folder for persistant data storage" + label: "Application Folder" + required: true + default: "CMS_APP_DATA" + type: "string" + - variable: cms_packages_data + description: "Concrcte5 packages folder for persistant data storage" + label: "Packages Folder" + required: true + default: "CMS_PACK_DATA" + type: "string" +CMSMysql: + scale: 1 +Concrete5App: + scale: 1 diff --git a/templates/Concrete5/1/docker-compose.yml b/templates/Concrete5/1/docker-compose.yml new file mode 100644 index 0000000..f0c238a --- /dev/null +++ b/templates/Concrete5/1/docker-compose.yml @@ -0,0 +1,43 @@ +CMSMysql: + environment: + MYSQL_ROOT_PASSWORD: ${root_password} + MYSQL_DATABASE: ${db_name} + MYSQL_USER: ${db_username} + MYSQL_PASSWORD: ${db_password} + labels: + io.rancher.container.pull_image: always + tty: true + image: mysql + volumes: + - ${db_data_location}:/var/lib/mysql + stdin_open: true + volume_driver: ${volume_driver} + +CMSConfig: + image: opensaas/concrete5 + tty: true + stdin_open: true + links: + - CMSMysql:mysql + volumes: + - ${cms_application_data}:/var/www/html/application + - ${cms_packages_data}:/var/www/html/packages + labels: + io.rancher.container.hostname_override: container_name + io.rancher.container.start_once: true + volume_driver: ${volume_driver} + command: bash -c "chown -R www-data. application; chown -R www-data. packages; sleep 2m; php -f concrete/bin/concrete5.php c5:install --db-server=mysql --db-username=${db_username} --db-password=${db_password} --db-database=${db_name} --site=${cms_sitename} --admin-email=${cms_admin_email} --admin-password=${cms_admin_password} -n -vvv" + +Concrete5App: + labels: + io.rancher.container.pull_image: always + io.rancher.sidekicks: CMSConfig + tty: true + links: + - CMSMysql:mysql + image: opensaas/concrete5 + volumes: + - ${cms_application_data}:/var/www/html/application + - ${cms_packages_data}:/var/www/html/packages + volume_driver: ${volume_driver} + stdin_open: true \ No newline at end of file diff --git a/templates/Concrete5/1/rancher-compose.yml b/templates/Concrete5/1/rancher-compose.yml new file mode 100644 index 0000000..252db7d --- /dev/null +++ b/templates/Concrete5/1/rancher-compose.yml @@ -0,0 +1,76 @@ +.catalog: + name: "Concrete5" + version: "v0.2" + description: "Concrete5 CMS" + uuid: Concrete5-1 + minimum_rancher_version: v0.51.0 + questions: + - variable: root_password + description: "MySQL root password - keep this password complex and secure" + label: "MySQL Root Password" + required: true + default: "password" + type: "string" + - variable: db_name + description: "MySQL Database Name - to use in the Concrete5 setup" + label: "MySQL Database Name" + required: true + default: "CMS_DB" + type: "string" + - variable: db_username + description: "MySQL Username - to use in the Concrete5 setup" + label: "MySQL Username" + required: true + default: "CMS_USER" + type: "string" + - variable: db_password + description: "MySQL password for the above user - to use in the Concrete5 setup" + label: "MySQL Password" + required: true + default: "password" + type: "string" + - variable: db_data_location + description: "Location on the host for the database files" + label: "DB Data Location" + required: true + default: "CMS_DB_DATA" + type: "string" + - variable: volume_driver + description: "Volume Driver for the persistant data locations requires docker 1.7" + label: "Volume Driver" + type: "string" + - variable: cms_application_data + description: "Concrcte5 application folder for persistant data storage" + label: "Application Folder" + required: true + default: "CMS_APP_DATA" + type: "string" + - variable: cms_packages_data + description: "Concrcte5 packages folder for persistant data storage" + label: "Packages Folder" + required: true + default: "CMS_PACK_DATA" + type: "string" + - variable: cms_admin_email + description: "Concrcete5 admin email address" + label: "Admin Email" + required: true + default: "admin@example.com" + type: "string" + - variable: cms_admin_password + description: "Concrcete5 admin password" + label: "Admin Password" + required: true + default: "password" + type: "string" + - variable: cms_sitename + description: "Concrcete5 Sitename" + label: "Sitename" + required: true + default: "MySite" + type: "string" +CMSMysql: + scale: 1 +Concrete5App: + scale: 1 + diff --git a/templates/Concrete5/catalogIcon-concrete5.png b/templates/Concrete5/catalogIcon-concrete5.png new file mode 100644 index 0000000000000000000000000000000000000000..3b24a7da1970c99191d33c4f9b79379586a5db0a GIT binary patch literal 33330 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 Ri~ +projectURL: http://www.opensaas.com.au \ No newline at end of file