codecombat docker dev setup
THIS PROJECT IS NO LONGER MAINTAINED
CodeCombat Development environment setup.
If you don't know Docker, you should prefer use [official dev env setup] (https://github.com/codecombat/codecombat/wiki/Developer-environment)
[CodeCombat] (http://codecombat.com) is a multiplayer live coding strategy game. Learn how to code by playing a game !
You must use a codecombat-db container to store data in the db.
And you must use a codecombat-web container to serve the source files and expose a nodejs web server.
Linux Users : Install docker
Windows and Mac Users : Install a Linux in Vagrant and install Docker in your Virtual Machine
pull docker images
restore a db snapshot
pull git repository and compile app
And Voilà !
CodeCombat source code is in /data/app/coco/
CodeCombat datas are in /data/db/coco/
You can now run app and modify source code as needed.
In a terminal run db container
cd db && make run
Ouput expected :
2014-07-27 08:27:35,960 INFO success: sshd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2014-07-27 08:27:35,960 INFO success: db_start entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
In another terminal run web container
cd web && make run
Ouput expected :
2014-07-27 08:28:12,081 INFO success: sshd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2014-07-27 08:28:12,081 INFO success: web_start entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
The container will create a directory /data/app/coco/public.
Next it will create a /data/app/coco/dev-server.log
dev-server.log content expected :
2014-07-27T08:28:51.848Z - [32minfo[39m: Express SSL server listening on port 3000 2014-07-27T08:28:51.871Z - [32minfo[39m: Successfully connected to MongoDB queue!
You can play at http://localhost:3000
Build codecombat-db or codecombat-web images :
Run a container :
make: * No rule to make target 'run'. Arrêt.
You must be root to launch make and docker.
Error: Conflict, The name codecombat-... is already assigned to ...
git/docker-codecombat/web# make run mkdir -p "/data/app/coco/" docker run --rm --link codecombat-db:dbhost --name codecombat-web -p 3000:3000 -p 24:22 -v "/data/app/coco/":/opt/codecombat/ -t -i smoratinos/codecombat-web:latest 2014/07/27 10:18:05 Error: Conflict, The name codecombat-web is already assigned to 8305c9f90d2f. You have to delete (or rename) that container to be able to assign codecombat-web to a container again. Makefile:23: recipe for target 'run' failed make: *** [run] Error 1
docker stop codecombat-web && docker rm codecombat-web