version: '3.7' x-common: &common # restart: unless-stopped env_file: - env services: postgresql: <<: *common build: ./postgresql networks: main: aliases: - postgresql.main.internal.docker volumes: - ./data/postgresql/data:/var/lib/postgresql/data ports: - "127.0.0.1:34000:5432" postfixadmin: <<: *common build: ./postfixadmin networks: main: aliases: - postfixadmin.main.internal.docker ports: - "127.0.0.1:34001:80" postfix: <<: *common build: ./postfix networks: main: aliases: - mail1.example.com volumes: - ./data/common/certs:/etc/ssl/certs ports: - "0.0.0.0:25:25" - "0.0.0.0:465:465" - "0.0.0.0:587:587" dovecot: <<: *common build: ./dovecot networks: main: aliases: - dovecot.main.internal.docker volumes: - ./data/common/certs:/etc/ssl/certs - ./data/dovecot/email:/var/email ports: - "0.0.0.0:143:143" - "0.0.0.0:993:993" - "0.0.0.0:4190:4190" opendkim: <<: *common build: ./opendkim networks: main: aliases: - opendkim.main.internal.docker volumes: - ./data/opendkim/keys:/etc/opendkim/keys milter-sasl: <<: *common build: ./milter-sasl networks: main: aliases: - milter-sasl.main.internal.docker networks: main: