The environment is provisioned via Docker containers.
Install Docker Toolbox.
Step through the platform-appropriate Getting Started Guide (OS X/Windows/Linux). If you cannot complete step three, "Find and run the whalesay image", then do not proceed further, instead contact @hakamadare for assistance.
Check out this repository and open a terminal session at the top-level directory.
.envfile at the top level. A sample file is in Google Drive, in the DevOps folder.
docker-compose up. You should see several containers start up and output logs to the terminal.
Confirm that your environment started correctly by running
docker-compose psin another terminal. If the command could not connect to Docker daemon, run
eval "$(docker-machine env default)"to set Docker environment variables. A healthy environment looks like this:
$ docker-compose ps
Name Command State Ports
api_api_1 catalina.sh run Up 0.0.0.0:8080->8080/tcp
api_consul_1 /bin/start -server -bootst ... Up 53/tcp, 0.0.0.0:8600->53/udp, 8300/tcp,
8301/tcp, 8301/udp, 8302/tcp, 8302/udp,
api_postgres_1 /docker-entrypoint.sh postgres Up 5432/tcp
api_redis_1 /entrypoint.sh redis-server Up 6379/tcp
If you're not on a Linux system, find the IP address of your local Docker VM by running
docker-machine ip default. NOTE The Docker documentation is inconsistent; if you follow the Getting Started instructions you'll end up with a local machine called "dev", while if you start up Kitematic you'll end up with a local machine called "default". Modify the above command appropriately for your case.
http://<THE IP ADDRESS FROM THE PREVIOUS COMMAND>:8080in a web browser; you should see the root of the web application.
Install Scala (I suggest using scalaenv, if you do it some other way you're on your own).
Install sbt (I suggest using sbtenv, if you do it some other way you're on your own).
Edit the project (source code lives down
Build a new WAR by running
sbt clean package.
The Docker container mounts your local filesystem and reads the compiled files directly from your workstation, so you don't need to change the Docker image in order to deploy code changes. Tomcat will reload itself when it detects that the underlying files have changed.