NOTE: This exists only for local development. If you're interested in using Docker for a production setup, visit the docs instead.
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.
To spin up a local suite of:
- PostgreSQL
- Mailhog
- Node.js frontend app
- Golang backend app
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.
Running this will build the appropriate images and initialize the database.
make init-dev-docker
Running this start your local development stack.
make dev-docker
Visit http://localhost:8080
on your browser.
This will tear down all the data, including DB.
make rm-dev-docker
- 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.