practale
practale
# Assignment Solution
**Containers:**
**Recommendation:**
```dockerfile
FROM nginx:latest
EXPOSE 80
```
```dockerfile
FROM mariadb:latest
ENV MYSQL_ROOT_PASSWORD=my-secret-pw
ENV MYSQL_DATABASE=mydb
EXPOSE 3306
CMD ["mysqld"]
```
### IP Addressing
- **Gateway:** 192.16.9.254
```yaml
version: '3.8'
services:
load-balancer:
image: nginx:latest
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
ports:
- "443:443"
depends_on:
- web
web:
image: custom-webapp
build:
context: ./web
dockerfile: Dockerfile
deploy:
replicas: 10
update_config:
parallelism: 2
delay: 10s
restart_policy:
condition: on-failure
networks:
- app-network
ports:
- "80"
db:
image: custom-mariadb
build:
context: ./db
dockerfile: Dockerfile
environment:
MYSQL_ROOT_PASSWORD: my-secret-pw
MYSQL_DATABASE: mydb
volumes:
- db_data:/var/lib/mysql
networks:
- app-network
networks:
app-network:
driver: bridge
volumes:
db_data:
```
```nginx
http {
upstream backend {
server 192.16.9.2;
server 192.16.9.3;
server 192.16.9.4;
server 192.16.9.5;
server 192.16.9.6;
server 192.16.9.7;
server 192.16.9.8;
server 192.16.9.9;
server 192.16.9.10;
server 192.16.9.11;
server {
server_name localhost;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
location / {
proxy_pass http://backend;