110 lines
2.4 KiB
YAML
110 lines
2.4 KiB
YAML
services:
|
|
nginx:
|
|
image: nginx:1.26-alpine
|
|
container_name: nginx-pmi
|
|
ports:
|
|
- "8080:80"
|
|
- "8443:443"
|
|
volumes:
|
|
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
|
- ./nginx/conf.d:/etc/nginx/conf.d:ro
|
|
- ./nginx/htpasswd:/etc/nginx/htpasswd:ro
|
|
- ./www:/usr/share/nginx/html:ro
|
|
- ./ssl:/etc/nginx/ssl:ro
|
|
- ./scripts:/scripts:ro
|
|
- ./fim-watch:/fim-watch
|
|
- ./reports:/reports
|
|
- nginx-cache:/var/cache/nginx
|
|
- nginx-logs:/var/log/nginx
|
|
depends_on:
|
|
- backend
|
|
- slow-backend
|
|
- auth-mock
|
|
- syslog-ng
|
|
networks:
|
|
allowed-net:
|
|
ipv4_address: 172.28.0.2
|
|
denied-net:
|
|
ipv4_address: 172.29.0.2
|
|
internal:
|
|
healthcheck:
|
|
test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://127.0.0.1/public/index.html"]
|
|
interval: 5s
|
|
timeout: 3s
|
|
retries: 12
|
|
|
|
backend:
|
|
image: nginx:1.26-alpine
|
|
container_name: nginx-pmi-backend
|
|
volumes:
|
|
- ./mock/backend.conf:/etc/nginx/conf.d/default.conf:ro
|
|
networks:
|
|
- internal
|
|
|
|
slow-backend:
|
|
image: python:3.12-alpine
|
|
container_name: nginx-pmi-slow
|
|
command: ["python", "/app/slow-server.py"]
|
|
volumes:
|
|
- ./mock/slow-server.py:/app/slow-server.py:ro
|
|
networks:
|
|
- internal
|
|
|
|
auth-mock:
|
|
image: python:3.12-alpine
|
|
container_name: nginx-pmi-auth
|
|
command: ["python", "/app/auth-server.py"]
|
|
volumes:
|
|
- ./mock/auth-server.py:/app/auth-server.py:ro
|
|
- auth-mode:/auth-mode
|
|
networks:
|
|
- internal
|
|
|
|
syslog-ng:
|
|
image: balabit/syslog-ng:4.7.1
|
|
container_name: nginx-pmi-syslog
|
|
volumes:
|
|
- ./mock/syslog-ng.conf:/etc/syslog-ng/syslog-ng.conf:ro
|
|
- ./reports:/reports
|
|
networks:
|
|
- internal
|
|
|
|
test-runner:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.test-runner
|
|
container_name: nginx-pmi-test-runner
|
|
volumes:
|
|
- ./scripts:/scripts:ro
|
|
- ./ssl:/ssl:ro
|
|
- ./reports:/reports
|
|
- auth-mode:/auth-mode
|
|
depends_on:
|
|
nginx:
|
|
condition: service_healthy
|
|
networks:
|
|
allowed-net:
|
|
ipv4_address: 172.28.0.20
|
|
denied-net:
|
|
ipv4_address: 172.29.0.20
|
|
internal:
|
|
|
|
networks:
|
|
allowed-net:
|
|
driver: bridge
|
|
ipam:
|
|
config:
|
|
- subnet: 172.28.0.0/16
|
|
denied-net:
|
|
driver: bridge
|
|
ipam:
|
|
config:
|
|
- subnet: 172.29.0.0/16
|
|
internal:
|
|
driver: bridge
|
|
|
|
volumes:
|
|
nginx-cache:
|
|
nginx-logs:
|
|
auth-mode:
|