# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

---
version: '3.8'

services:
    trafficops:
        build:
            context: dev/traffic_ops/
            args:
                - GO_VERSION=${GO_VERSION}
        depends_on:
            - db
        networks:
            - ciab
        hostname: trafficops
        image: trafficops-dev
        ports:
            - 6443:443
            - 6444:6444
        volumes:
            - .:/root/go/src/github.com/apache/trafficcontrol/

    db:
        image: postgres:13.2-alpine
        ports:
            - 5432:5432
        environment:
            - POSTGRES_PASSWORD=twelve12
        hostname: db
        networks:
            - ciab

    trafficportal:
        build:
            context: dev/traffic_portal
        depends_on:
            - trafficops
        hostname: trafficportal
        networks:
            - ciab
        image: trafficportal-dev
        ports:
            - 444:443
        volumes:
            - .:/root/go/src/github.com/apache/trafficcontrol
            - ./.npm:/root/.npm

    tpv2:
        build:
            context: dev/tpv2
        depends_on:
            - trafficops
        hostname: tpv2
        networks:
            - ciab
        image: tpv2-dev
        ports:
            - 443:443
        volumes:
            - .:/root/go/src/github.com/apache/trafficcontrol

    trafficmonitor:
        build:
            context: dev/traffic_monitor
            args:
                - GO_VERSION=${GO_VERSION}
        depends_on:
            - trafficops
        hostname: trafficmonitor
        networks:
            - ciab
        image: trafficmonitor-dev
        ports:
            - 80:80
            - 81:81
        volumes:
            - .:/root/go/src/github.com/apache/trafficcontrol

    t3c:
        build:
            context: dev/t3c
            args:
                - ATS_VERSION=${ATS_VERSION}
                - GO_VERSION=${GO_VERSION}
        depends_on:
            - trafficops
        hostname: edge
        networks:
            - ciab
        image: t3c-dev
        ports:
            - 8080:80
            - 8081:8081
        volumes:
            - .:/root/go/src/github.com/apache/trafficcontrol

    trafficrouter:
        build:
            context: dev/traffic_router
        depends_on:
            - trafficmonitor
        hostname: trafficrouter
        networks:
            - ciab
        image: trafficrouter-dev
        ports:
            - 3053:53/tcp
            - 3053:53/udp
            - 3080:80
            - 3443:443
            - 3333:3333
            - 2222:3443
            - 5005:5005
        volumes:
            - .:/go/src/github.com/apache/trafficcontrol
networks:
    ciab:
        name: dev.ciab.test
        driver: bridge
        enable_ipv6: true
        ipam:
          driver: default
          config:
            - subnet: 2001:3984:3989::/64
