Code samples for the Go microservice blog series
- 2019-07-27: Total rewrite of Go code, including introducing Makefiles for build and a docker-compose file for deployment on Docker Swarm.
Turbine stream URL: http://192.168.99.100:8282/turbine.stream?cluster=swarm Hystrix stream URL: http://accountservice:8181/hystrix.stream?cluster=swarm
Make sure Turbine doesn't crash on startup due to AMQ connection problem.
docker-machine create --driver virtualbox --virtualbox-cpu-count 4 --virtualbox-memory 6000 --virtualbox-disk-size 30000 swarm-manager-0
eval "$(docker-machine env swarm-manager-0)"
docker network create --driver overlay my_network
docker swarm init --advertise-addr 192.168.99.100
docker swarm join --token SWMTKN-1-5njothki0tww7gestuh309qgrnr6r357phlsn7ue0r8qmlqnla-181tl1rfou16vv3e7nxrk4ra3 192.168.99.100:2377
You need Go 1.14 or later installed on your system to build from source.
Builds are performed using Makefile(s). In the root /goblog folder:
make build
One can also run all tests, format code using makefile targets.
Deploy using:
make deploy
The make target uses docker stack deploy behind the scenes.
Here's some minor stuff worth remembering.
Find a container running the cockroachdb/cockroach container using docker ps and note the container ID. Then we'll use docker exec to launch the SQL CLI:
> docker exec -it 10f4b6c727f8 ./cockroach sql --insecure
(this is possibly broken, from part 16 onwards the initial DB setup is performed using the docker stack)
Originally from: cockroachdb/cockroach#19826 (comment)
DROP USER IF EXISTS cockroach; \
DROP DATABASE IF EXISTS account CASCADE; \
CREATE DATABASE IF NOT EXISTS account; \
CREATE USER cockroach WITH PASSWORD 'password'; \
GRANT ALL ON DATABASE account TO cockroach;