Compare commits

...

2 Commits

Author SHA1 Message Date
Jason Zhu 038455b315 eg3 finished and test proxy 2023-05-05 00:16:21 +10:00
Jason Zhu 7074e55f40 eg3 removed unnecessary exposed port 2023-05-05 00:06:20 +10:00
2 changed files with 35 additions and 17 deletions

View File

@ -22,7 +22,9 @@ In this section, we test frontend container can cross-communicate with backend c
Steps:
1. Comment out proxy container
2. frontend has port 80 exposed; backend has port 5000 exposed;
2. Remove exposed of both containers, as we they don't need expose their ports to outside environment. We just want to test their cross-communication in the same docker network
1. port 80 for frontend;
2. port 5000 for backend;
3. Run `docker compose build` & `docker compose up`
4. Create a network: `docker network create mynetwork`
5. Add containers into network
@ -32,4 +34,24 @@ Steps:
7. Test network:
1. Enter frontend container: `docker exec -it frontend /bin/sh`
2. Make a request to backend: `curl http://backend:5000`
3. Get response `{"version": "1.0.0"}`
3. Get response `{"version": "1.0.0"}`
# Proxy using nginx
In this section, we test we can reach both frontend and backend from proxy container or computer itself
Steps:
1. Uncomment all container in `docker-compose.yaml`
2. Build container and initiate them via `docker compose up`
3. These container are not in `mynetwork`
4. Enter proxy container via `docker exec -it proxy /bin/sh`
5. From the proxy container, try to reach other containers
1. Frontend
1. `curl http://frontend`
2. `curl http://localhost` to visit port 80
2. Backend
1. `curl http://backend:5000`
2. `curl http://localhost/api`
6. Exit the container; In normal terminal, we can still reach frontend and backend
1. `curl http://localhost` to visit frontend
2. `curl http://localhost/api` to visit backend

View File

@ -1,29 +1,25 @@
version: '3.8'
services:
# proxy:
# container_name: proxy
# build:
# context: ./proxy
# dockerfile: Dockerfile
# ports:
# - "80:80"
# depends_on:
# - frontend
# - backend
proxy:
container_name: proxy
build:
context: ./proxy
dockerfile: Dockerfile
ports:
- "80:80"
depends_on:
- frontend
- backend
frontend:
container_name: frontend
build:
context: ./frontend
dockerfile: Dockerfile
ports:
- "80:80" # Uncomment this line if you want to run the frontend container only
backend:
container_name: backend
build:
context: ./backend
dockerfile: Dockerfile
ports:
- "5000:5000" # Uncomment this line if you want to run the backend container only
dockerfile: Dockerfile