.. | ||
.gitignore | ||
app.Dockerfile | ||
config.toml | ||
docker-compose.yml | ||
README.md |
Docker suite for development
NOTE: This exists only for local development. If you're interested in using Docker for a production setup, visit the docs instead.
Objective
The purpose of this Docker suite for local development is to isolate all the dev
dependencies in a Docker environment. The containers have a host volume mounted
inside for the entire app directory. This helps us to not do a full
docker build
for every single local change, only restarting the Docker
environment is enough.
Setting up a dev suite
To spin up a local suite of:
- PostgreSQL
- Mailhog
- Node.js frontend app
- Golang backend app
Verify your config file
The config file provided at dev/config.toml
will be used when running the
containerized development stack. Make sure the values set within are suitable
for the feature you're trying to develop.
Setup DB
Running this will build the appropriate images and initialize the database.
make init-dev-docker
Start frontend and backend apps
Running this start your local development stack.
make dev-docker
Visit http://localhost:8080
on your browser.
Tear down
This will tear down all the data, including DB.
make rm-dev-docker
See local changes in action
- Backend: Anytime you do a change to the Go app, it needs to be compiled. Just
run
make dev-docker
again and that should automatically handle it for you. - Frontend: Anytime you change the frontend code, you don't need to do anything.
Since
yarn
is watching for all the changes and we have mounted the code inside the docker container,yarn
server automatically restarts.