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+

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.

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 master
https://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.

 

 

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30056803