Register
Submit a solution
The challenge is finished.

Challenge Overview

Previously, we have worked out a general approach to run Topcoder Competition Engine in docke environment.

For this challenge, we'd like to improve it and make it clean and easy to use. Following are the general requirements.

Assuming, we have checkout all sources in dev directory locally

1. A Dockerfile file which can be used to build a base image for build and run the competition engine, it should do all steps in one single user, no need to create separate users like apps, farm, deployer etc
1.1 The base image will based on centos 6.8 (use the centos6.8 tag at https://hub.docker.com/_/centos/)
1.2 the Docker image should have needed software ready, install and setup JDK, ANT etc
1.3 The docker image should have the base softwares ready for building, like jboss-4.0.5.GA.zip, apache-tomcat-5.5.27.zip etc, no need to unzip in the build image, should be part of the building process.
1.4 The Docker image will not contain the source code for the whole competition engine, define volume to take in when run the container.
1.5 A build script which will build everything into the deployment directory, this should be defined as volume too. So we can take the built peices out of docker container.
1.6 A start script which can run the services by using the built pieces in deployment directory inside the base image
1.7 That is saying, we can use the base image to take the built pieces, and we can also use it to run the services, the ultimate goal is with the deployment directory we can build docker images for each sub-system and easily grouping them as a complete system, and this will be good for 

2. Define a docker-compose file which links all the services to have a completely running environment for competition engine.
- databases (https://hub.docker.com/r/appiriodevops/tc-database-scripts/)
* informix (use latest tag)
* mysql (use mysql tag)
- openldap service (use openldap tag in https://hub.docker.com/r/appiriodevops/tc-arena/)
- competition engine (tomcat, jboss, listeners, should be run with the base image)
- farm processors (use farm-processor tag in https://hub.docker.com/r/appiriodevops/tc-arena/)

3. For centos6.8 setup, you can check dev/app/setup/centos/arena-setup.sh for better understanding.
4. All previous setup documentation will be provided for reference and better understanding, please raise your questions if you have as quickly as you can.

Verification

After up the whole system, you can
1. Following TopCoder_Competition_Engine_Build_and_Run.pdf to verify the whole system is running properly.
2. Check the logs of each subsystem to make sure all is working properly





 

Final Submission Guidelines

- Dockerfile for base image
- docker-compose.yaml file for integrating all services
- Verification Steps

ELIGIBLE EVENTS:

2017 TopCoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30057038