|
@@ -1,28 +1,44 @@
|
|
# Docker suite for development
|
|
# 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](https://listmonk.app/docs/installation/#docker) instead.
|
|
|
|
|
|
+**NOTE**: This exists only for local development. If you're interested in using
|
|
|
|
+Docker for a production setup, visit the
|
|
|
|
+[docs](https://listmonk.app/docs/installation/#docker) instead.
|
|
|
|
|
|
### Objective
|
|
### 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.
|
|
|
|
|
|
+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
|
|
## Setting up a dev suite
|
|
|
|
|
|
-To spin up a local suite of
|
|
|
|
|
|
+To spin up a local suite of:
|
|
|
|
|
|
- PostgreSQL
|
|
- PostgreSQL
|
|
- Mailhog
|
|
- Mailhog
|
|
- Node.js frontend app
|
|
- Node.js frontend app
|
|
- Golang backend 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
|
|
### Setup DB
|
|
|
|
|
|
|
|
+Running this will build the appropriate images and initialize the database.
|
|
|
|
+
|
|
```bash
|
|
```bash
|
|
make init-dev-docker
|
|
make init-dev-docker
|
|
```
|
|
```
|
|
|
|
|
|
### Start frontend and backend apps
|
|
### Start frontend and backend apps
|
|
|
|
|
|
|
|
+Running this start your local development stack.
|
|
|
|
+
|
|
```bash
|
|
```bash
|
|
make dev-docker
|
|
make dev-docker
|
|
```
|
|
```
|
|
@@ -39,5 +55,8 @@ make rm-dev-docker
|
|
|
|
|
|
### See local changes in action
|
|
### 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.
|
|
|
|
|
|
+- 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.
|