pretendo-docker/compose.yml
Matthew Lopez 2bd74b71c4
Set up CoreDNS for containers
This sends all requests to *.pretendo.cc or *.pretendo.network coming from inside a container to the nginx container.
2023-12-18 20:42:21 -05:00

109 lines
2.7 KiB
YAML

name: pretendo-network
version: "3.8"
services:
mitmproxy-pretendo:
build: ./repos/mitmproxy-pretendo
ports:
# Proxy server
- 8080:8080
# Mitmweb interface
- 127.0.0.1:8081:8081
volumes:
- type: volume
source: mitmproxy-pretendo-data
target: /home/mitmproxy/.mitmproxy
command: mitmweb --web-host 0.0.0.0
tty: true
coredns:
image: coredns/coredns:latest
volumes:
- type: bind
source: ./config/Corefile
target: /etc/coredns/Corefile
networks:
internal:
ipv4_address: 172.20.0.2
command: -conf /etc/coredns/Corefile
nginx:
build: ./nginx
ports:
- 80:80
- 443:443
dns: 172.20.0.2
networks:
default:
internal:
mongodb:
image: mongo:latest
ports:
# For connecting with mongosh or MongoDB Compass
- 127.0.0.1:27017:27017
volumes:
- type: volume
source: mongodb-database
target: /data/db
dns: 172.20.0.2
networks:
internal:
command: --config "/etc/mongod.conf" --replSet rs
minio:
image: minio/minio:latest
ports:
# Web console
- 127.0.0.1:9090:9090
env_file:
- ./environment/minio.env
- ./environment/minio.local.env
volumes:
- type: volume
source: minio-s3-data
target: /data
command: server /data --console-address ":9090"
dns: 172.20.0.2
networks:
internal:
# redis:
# image: redis:latest
# volumes:
# - type: volume
# source: redis-data
# target: /data
# command: redis-server --save 60 1 --appendonly yes
account:
build: ./repos/account
depends_on:
- mongodb
- minio
env_file:
- ./environment/account.env
- ./environment/account.local.env
volumes:
- type: volume
source: account-certificates
target: /app/certs
dns: 172.20.0.2
networks:
internal:
volumes:
mitmproxy-pretendo-data:
mongodb-database:
minio-s3-data:
account-certificates:
networks:
# We need to use a custom network so that we can set a static IP address for
# CoreDNS and use it as a DNS server for the other containers.
internal:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/16