version: "2.1"

services:
    odoo_proxy:
        image: tecnativa/whitelist
        depends_on:
            - odoo
        networks: &public
            default:
            public:
        ports:
            - "127.0.0.1:${ODOO_MAJOR}069:8069"
        environment:
            PORT: 8069
            TARGET: odoo

    odoo:
        extends:
            file: common.yaml
            service: odoo
        build:
            args:
                # To aggregate in development, use `setup-devel.yaml`
                AGGREGATE: "false"
                # No need for this in development
                PIP_INSTALL_ODOO: "false"
                CLEAN: "false"
                COMPILE: "false"
        environment:
            ADMIN_PASSWORD: admin
            PGDATABASE: devel
            PYTHONOPTIMIZE: ""
            SMTP_PORT: "1025"
            # You want demo data for development
            WITHOUT_DEMO: "false"
        volumes:
            - ./odoo/custom:/opt/odoo/custom:ro,z
            - ./odoo/auto/addons:/opt/odoo/auto/addons:rw,z
        depends_on:
            - cdnjs_cloudflare_proxy
            - db
            - fonts_googleapis_proxy
            - fonts_gstatic_proxy
            - gravatar_proxy
            - smtp
            - wdb
        command:
            - odoo
            - --workers=0
            # XXX Odoo v8 has no `--dev` mode; Odoo v9 has no parameters
            - --dev=reload,qweb,werkzeug,xml,wdb

    db:
        extends:
            file: common.yaml
            service: db

    smtp:
        extends:
            file: common.yaml
            service: smtpfake
        networks: *public
        ports:
            - "127.0.0.1:8025:8025"

    wdb:
        image: yajo/wdb-server
        networks: *public
        ports:
            - "127.0.0.1:1984:1984"

    # Whitelist outgoing traffic for tests, reports, etc.
    cdnjs_cloudflare_proxy:
        image: tecnativa/whitelist
        networks:
            default:
                aliases:
                    - cdnjs.cloudflare.com
            public:
        environment:
            TARGET: cdnjs.cloudflare.com
            PRE_RESOLVE: 1

    fonts_googleapis_proxy:
        image: tecnativa/whitelist
        networks:
            default:
                aliases:
                    - fonts.googleapis.com
            public:
        environment:
            TARGET: fonts.googleapis.com
            PRE_RESOLVE: 1

    fonts_gstatic_proxy:
        image: tecnativa/whitelist
        networks:
            default:
                aliases:
                    - fonts.gstatic.com
            public:
        environment:
            TARGET: fonts.gstatic.com
            PRE_RESOLVE: 1

    gravatar_proxy:
        image: tecnativa/whitelist
        networks:
            default:
                aliases:
                    - www.gravatar.com
            public:
        environment:
            TARGET: www.gravatar.com
            PRE_RESOLVE: 1

networks:
    default:
        internal: true
    public:

volumes:
    filestore:
    db: