- kvstore/dal contains the data structure and required methods CRUD methods
- kvstore/kvs handles any interfacing with the DAL
- kvstore/model contains definitions of structures used in kvstore/dal
- router/middleware contains methods for proxying
- router/router contains methods for assigning http routes to their handlers
- router/model contains definitions of structures used in the router package
- hasher/dal contains the entire consistent hashing library
- hasher/model contains definitions of structures used in consistent hashing library
- vectorclock/dal contains the vectorclock library
- vectorclock/model contains definitions of functions and structures used in vectorclock library
- specify the base image to be golang:alpine (an alpine linux golang deployment)
- set working directory to app (note: this can be changed for ease of debugging)
- copy all files from ./ to the appropriate gopath on the new machine
- install git to aid with go commands
- install dependencies
- run a go install to install the program on the container
- set the path of the program to be run when the container is started