18F / knowledge-sharing-toolkit

[EXPERIMENTAL] Docker components for the knowledge sharing toolkit
https://docs.google.com/document/d/19Q2t5zHzVKAv4ncftrzvKIqE0QVDWb1Nq_jQep69mTw/edit
Other
0 stars 7 forks source link

Implement local Docker network #8

Closed mbland closed 8 years ago

mbland commented 8 years ago

Depends on #7. With this PR, it's possible to bring up the whole system up and down with:

$ ./go start
$ ./go stop

To run and test locally, update /etc/hosts with the following (substituting the IP addresses with that returned from docker-machine ip) before visiting the hosts in your browser:

# Testing locally with 18F/knowledge-sharing-toolkit
# Run `docker-machine env` to get the current IP.
192.168.99.100 pages.18f.gov
192.168.99.100 pages-staging.18f.gov
192.168.99.100 pages-internal.18f.gov
192.168.99.100 pages-releases.18f.gov
192.168.99.100 team-api.18f.gov
192.168.99.100 hub.18f.gov
192.168.99.100 handbook.18f.gov

With this setup all the required secrets in place (which I'll document very soon), you'll have a complete system equivalent to currently running on those hosts.

Well, almost. There's couple rough spots to smooth off. But mostly.

A really nice unexpected feature: The Docker network 18f/knowledge-sharing-toolkit created by ./go create_network command binds the container names to Docker network addresses via a local DNS mechanism. This means that all of the configurations needed to be updated to reference specific container "hosts", rather than "localhost" or "127.0.0.1". Consequently, the dependencies between services become more explicit via the configuration files.

There's another goodie documented in the commit message for f235b54db4154949051057de73509c218b9724bd, but you can just read that for yourself. (Too long to paste here.)

Really close to having it all done now, modulo a couple small fixes/features for 18F/lunr-server and 18F/pages-server (notably doing a s3 sync after successful builds). Plus, I still have to add the Hub, which won't be too hard at this point, I don't think.

cc: @jcscottiii @ccostino @afeld @catherinedevlin @batemapf @ertzeid @mtorres253

mbland commented 8 years ago

OK, this guy is ready for a look-see.