Challenge Overview
1.0. Introduction
Topcoder would like to improve the product development team's ability to deliver quick, stable releases across all key applications/services of the platform. This includes making it easy for the community to quickly participate in design, development, qa, devops, and release efforts.
2.0. Challenge Overview
The legacy tc-website is fairly complex to setup locally and we intend to use docker containers to make local deployment easier for newcomers.2.1. Requirements
Instructions on how to deploy the tc-website needs to be brought up-to-date -- the Topcoder wiki instructions were written under the assumption that deployment will be on an EC2 VM. This challenge will focus on documenting how to successfully deploy the tc-website on any developer machine running Linux, mac OS or Windows using instructions from two recently completed First2Finish challenges.TC Website - Local Deployment 1 - [JBoss + Informix]
TC Website - Local Deployment 2 - [Apache + OpenLDAP]
Using the winning submissions from these challenges as input, you will produce two documents: a docker-compose.yml and a README.md. The docker-compose file will be used to build layers of docker images for deploying the tc-website locally. The README.md will organize the deployment instructions into logical sections and include verification steps showing that the deployment was successful.
2.2. Background
To successfully deploy the tc-website, a couple of tools and services need to be present in the development environment:1.0. Java compiler - JDK v1.7+
2.0. build tool - maven v3.3+
3.0. web server - Apache v2.2+
4.0. app server - JBoss v4.0.4
5.0. database server - Informix v11.50+
6.0. LDAP server - openLDAP v2.4+
7.0. cache service - redis v3.2+
8.0. container service - docker v1.12+
9.0. scm tool - svn v1.5.x - v1.6.x
10.0. build tool - ant v1.7+
2.0. build tool - maven v3.3+
3.0. web server - Apache v2.2+
4.0. app server - JBoss v4.0.4
5.0. database server - Informix v11.50+
6.0. LDAP server - openLDAP v2.4+
7.0. cache service - redis v3.2+
8.0. container service - docker v1.12+
9.0. scm tool - svn v1.5.x - v1.6.x
10.0. build tool - ant v1.7+
A working deployment of the tc-website on an EC2 VM is available.
2.2.1. To access the VM, you need to add this entry to your hosts file: 54.166.107.127 cockpit.cloud.topcoder.com tc.cloud.topcoder.com.
2.2.2. Visit https://tc.cloud.topcoder.com/tc - to accept the (expired) self-signed SSL certificate
2.2.3. Visit https://tc.cloud.topcoder.com/tc?&module=Login - then login with heffan/password but note that you will be redirected to the main site.
2.2.4. Visit https://tc.cloud.topcoder.com/tc?module=MyHome - to switch from the main site back to the VM and confirm that you are now logged in as heffan.
2.3. Tasks
Your responsibilities in this challenge are as follows:1. Create a docker-compose.yml that can be used to build a container for the tc-website.
Use this GitHub repo hosting Dockerfiles for other Topcoder systems for guidance on how to structure the docker-compose file.
Just like in direct-app, there should be 3 Dockerfiles corresponding to 3 images base, build and run necessary to deploy and run the app.
Be sure to separate out file paths and similar settings into environment variables like in env.sh.
Prefix local hostnames with "local.*" to differentiate them from VM hostnames. That is, use local.tc.cloud.topcoder.com.
Just like in direct-app, there should be 3 Dockerfiles corresponding to 3 images base, build and run necessary to deploy and run the app.
Be sure to separate out file paths and similar settings into environment variables like in env.sh.
Prefix local hostnames with "local.*" to differentiate them from VM hostnames. That is, use local.tc.cloud.topcoder.com.
2. Provide Markdown formatted instructions explaining how to deploy the tc-website using docker.
Include verification by providing screen shots demonstrating that all aspects of the tc-website work.
In your final submission, please clearly indicate the git commit hashes used in all aspects of your submission.
The winner will submit a pull request.
3.0. Repositories
tc-website masterhttps://github.com/topcoder-platform/tc-website
https://github.com/topcoder-platform/tc-website-external-artifacts
https://github.com/topcoder-platform/tc-website-glue
https://github.com/topcoder-platform/tc-website-shared
https://github.com/topcoder-platform/tc-website-static
4.0. Deployment
The platform might be a bit daunting to deploy locally for first timers, so it is important to ask for help early on the forums.4.1. Prerequisites
Before you begin, you may need to have the following tools installed:
- docker v1.12+
java v1.7+
maven v3.3+
Final Submission Guidelines
Please see the final submission guidelines above.
Reviewers please take note that the review duration is not the default duration so plan your time accordingly.
Also, ensure that you test submissions on different platforms.
Reviewers please take note that the review duration is not the default duration so plan your time accordingly.
Also, ensure that you test submissions on different platforms.