diff --git a/README.md b/README.md index 5b2dbd2..26d3d97 100644 --- a/README.md +++ b/README.md @@ -15,14 +15,16 @@ ThreeTwo! currently is set up as: ## Docker Instructions The recommended approach is to simply use `docker-compose` which spins up containers for the UI and all the associated microservices and data store. -To do that: -Make sure that you have `docker` and `docker-compose` installed. +Make sure that you have `docker` and `docker-compose` installed. Running `docker system prune -a` can help free up some space. + +Then: 1. Clone this repo using `git clone https://github.com/rishighan/threetwo.git` 2. Create an external docker network using `docker network create proxy` -3. Run `docker-compose up --build -d` -4. Note that the first time, the process could take up to 10 minutes, since it is building containers for `threetwo`, `threetwo-import-service`, `comicvine-service`, `mongo`, `nats`, `nginx` -5. For posterity, check that all containers are up using `docker ps` +3. Run `docker-compose up --build -d` to run the containers in detatched mode +4. For debugging you can leave out the `-d` flag +5. Note that the first time, the process could take up to 10 minutes, since it is building containers for `threetwo`, `threetwo-import-service`, `comicvine-service`, `mongo`, `nats`, `nginx` +6. For posterity, check that all containers are up using `docker ps` ## Local Development @@ -33,3 +35,12 @@ For debugging and troubleshooting, you can run this app locally using these step 3. This will open `http://localhost:3050` in your default browser 4. Note that this is simply the UI layer and won't offer anything beyond a scaffold. You have to spin up the microservices locally to get it to work. + +## Troubleshooting +### Docker + +1. `docker-compose up` is taking a long time + This is primarily because `threetwo-import-service` pulls `calibre` from the CDN and it has been known to be extremely slow. I can't find a more reliable alternative, so give it some time to finish downloading. + +2. What folder do my comics go in? + Currently, in the `docker-compose` setup, the `comics` folder at the root of this repo is used to store comics. diff --git a/contributing.md b/contributing.md new file mode 100644 index 0000000..e69de29 diff --git a/docker-compose.yml b/docker-compose.yml index 40f5f0e..2c12722 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,14 +1,6 @@ version: "3.7" services: - nginx: - image: nginx - container_name: proxy - ports: - - "80:80" - volumes: - - ./proxy.conf:/etc/nginx/conf.d/default.conf - threetwo: build: context: . @@ -29,7 +21,9 @@ services: - "3080:3080" environment: SERVICES: api - env_file: comicvine-service.env + env_file: ./docker-env/comicvine-service.env + volumes: + - 'userdata:/comicvine-service/userdata' depends_on: - nats networks: @@ -42,7 +36,7 @@ services: container_name: comicvine-service environment: SERVICES: comicvine - env_file: comicvine-service.env + env_file: ./docker-env/comicvine-service.env networks: - proxy @@ -55,7 +49,10 @@ services: - "3000:3000" environment: SERVICES: api - env_file: threetwo-import-service.env + env_file: ./docker-env/threetwo-import-service.env + volumes: + - 'userdata:/threetwo-import-service/userdata' + - 'comics:/threetwo-import-service/comics' depends_on: - nats - mongodb @@ -72,7 +69,7 @@ services: - nats environment: SERVICES: import - env_file: threetwo-import-service.env + env_file: ./docker-env/threetwo-import-service.env networks: - proxy @@ -86,7 +83,7 @@ services: - nats environment: SERVICES: imagetransformation - env_file: threetwo-import-service.env + env_file: ./docker-env/threetwo-import-service.env networks: - proxy @@ -105,12 +102,22 @@ services: container_name: transporter networks: - proxy + + nginx: + image: nginx + container_name: proxy + ports: + - "80:80" + volumes: + - ./proxy.conf:/etc/nginx/conf.d/default.conf networks: proxy: external: true volumes: + userdata: + comics: mongodb_data: driver: local diff --git a/comicvine-service.env b/docker-env/comicvine-service.env similarity index 100% rename from comicvine-service.env rename to docker-env/comicvine-service.env diff --git a/threetwo-import-service.env b/docker-env/threetwo-import-service.env similarity index 100% rename from threetwo-import-service.env rename to docker-env/threetwo-import-service.env diff --git a/proxy.conf b/proxy.conf index 077e42a..db0581b 100644 --- a/proxy.conf +++ b/proxy.conf @@ -16,7 +16,7 @@ server { server { listen 3000; - location /comicvine-service { + location /import-service { proxy_pass http://host.docker.internal:3000; } } \ No newline at end of file