| version: '2' |
| |
| # XOS docker compose |
| # generated by platform-install/roles/cord-profile |
| |
| networks: |
| {% for network in xos_docker_networks %} |
| {{ network }}: |
| external: true |
| {% endfor %} |
| |
| services: |
| xos_db: |
| image: {{ deploy_docker_registry }}xosproject/xos-postgres:{{ deploy_docker_tag }} |
| networks: |
| {% for network in xos_docker_networks %} |
| - {{ network }} |
| {% endfor %} |
| expose: |
| - "5432" |
| restart: unless-stopped |
| |
| {% if use_redis %} |
| xos_redis: |
| image: {{ deploy_docker_registry }}redis:{{ deploy_docker_tag }} |
| networks: |
| {% for network in xos_docker_networks %} |
| - {{ network }} |
| {% endfor %} |
| logging: |
| driver: "json-file" |
| options: |
| max-size: "1000k" |
| max-file: "5" |
| restart: unless-stopped |
| {% endif %} |
| |
| xos_gui: |
| image: {{ deploy_docker_registry }}xosproject/xos-gui:{{ deploy_docker_tag }} |
| networks: |
| {% for network in xos_docker_networks %} |
| - {{ network }} |
| {% endfor %} |
| ports: |
| - "4000:4000" |
| links: |
| - xos_ws:xos-ws |
| - xos_chameleon:xos-chameleon |
| depends_on: |
| - xos_ws |
| - xos_chameleon |
| volumes: |
| - {{ cord_profile_dir }}/style.config.js:/var/www/dist/style.config.js |
| - {{ cord_profile_dir }}/app.config.js:/var/www/dist/app.config.js |
| volumes_from: |
| - gui_extensions_store |
| logging: |
| driver: "json-file" |
| options: |
| max-size: "1000k" |
| max-file: "5" |
| restart: unless-stopped |
| |
| xos_chameleon: |
| image: {{ deploy_docker_registry }}xosproject/chameleon:{{ deploy_docker_tag }} |
| networks: |
| {% for network in xos_docker_networks %} |
| - {{ network }} |
| {% endfor %} |
| command: python chameleon/chameleon/main.py -R 9101 -G xos-core:50055 --swagger-url /apidocs |
| ports: |
| - "9101:9101" |
| links: |
| - xos_core:xos-core |
| depends_on: |
| - xos_core |
| logging: |
| driver: "json-file" |
| options: |
| max-size: "1000k" |
| max-file: "5" |
| restart: unless-stopped |
| |
| gui_extensions_store: |
| image: {{ deploy_docker_registry }}node:7.9.0 |
| networks: |
| {% for network in xos_docker_networks %} |
| - {{ network }} |
| {% endfor %} |
| command: /bin/true |
| volumes: |
| - /var/www/dist/extensions |
| logging: |
| driver: "json-file" |
| options: |
| max-size: "1000k" |
| max-file: "5" |
| |
| xos_ws: |
| image: {{ deploy_docker_registry }}xosproject/xos-ws:{{ deploy_docker_tag }} |
| networks: |
| {% for network in xos_docker_networks %} |
| - {{ network }} |
| {% endfor %} |
| command: npm start -- --config gateway-config.yml |
| ports: |
| - "3000:3000" |
| links: |
| - xos_ui:xos |
| {% if use_redis %} |
| - xos_redis:redis |
| {% endif %} |
| depends_on: |
| - xos_ui |
| {% if use_redis %} |
| - xos_redis |
| {% endif %} |
| volumes: |
| - {{ cord_profile_dir }}/gateway-config.yml:/var/www/src/config/gateway-config.yml |
| logging: |
| driver: "json-file" |
| options: |
| max-size: "1000k" |
| max-file: "5" |
| restart: unless-stopped |
| |
| xos_ui: |
| image: {{ deploy_docker_registry }}xosproject/xos-ui:{{ deploy_docker_tag }} |
| networks: |
| {% for network in xos_docker_networks %} |
| - {{ network }} |
| {% endfor %} |
| command: python /opt/xos/manage.py runserver 0.0.0.0:9000 --insecure --makemigrations |
| ports: |
| - "9000:9000" |
| links: |
| - xos_db:xos_db |
| {% if use_redis %} |
| - xos_redis:redis |
| {% endif %} |
| depends_on: |
| - xos_db |
| {% if use_redis %} |
| - xos_redis |
| {% endif %} |
| volumes: |
| - {{ cord_profile_dir }}/xos_common_config:/opt/xos/xos_configuration/xos_common_config:ro |
| - {{ cord_profile_dir }}:/opt/cord_profile:ro |
| - {{ cord_dir }}/orchestration/xos_libraries/ng-xos-lib:/opt/xos_libraries/ng-xos-lib:ro |
| - {{ cord_profile_dir }}/im_cert_chain.pem:/usr/local/share/ca-certificates/local_certs.crt:ro |
| logging: |
| driver: "json-file" |
| options: |
| max-size: "1000k" |
| max-file: "5" |
| restart: unless-stopped |
| |
| xos_core: |
| image: {{ deploy_docker_registry }}xosproject/xos-ui:{{ deploy_docker_tag }} |
| networks: |
| {% for network in xos_docker_networks %} |
| - {{ network }} |
| {% endfor %} |
| command: bash -c "cd coreapi; bash ./start_coreapi.sh" |
| ports: |
| - "50051:50051" |
| - "50055:50055" |
| links: |
| - xos_db:xos_db |
| {% if use_redis %} |
| - xos_redis:redis |
| {% endif %} |
| depends_on: |
| - xos_db |
| {% if use_redis %} |
| - xos_redis |
| {% endif %} |
| volumes: |
| - {{ cord_profile_dir }}/xos_common_config:/opt/xos/xos_configuration/xos_common_config:ro |
| - {{ cord_profile_dir }}:/opt/cord_profile:ro |
| - {{ cord_dir }}/orchestration/xos_libraries/ng-xos-lib:/opt/xos_libraries/ng-xos-lib:ro |
| - {{ cord_profile_dir }}/im_cert_chain.pem:/usr/local/share/ca-certificates/local_certs.crt:ro |
| - /var/run/docker.sock:/var/run/docker.sock |
| logging: |
| driver: "json-file" |
| options: |
| max-size: "1000k" |
| max-file: "5" |
| restart: unless-stopped |
| |
| {% for ext in enabled_gui_extensions %} |
| gui-extension-{{ ext.name }}: |
| image: {{ deploy_docker_registry }}xosproject/gui-extension-{{ ext.name }}:{{ deploy_docker_tag }} |
| networks: |
| {% for network in xos_docker_networks %} |
| - {{ network }} |
| {% endfor %} |
| command: npm run build |
| volumes_from: |
| - gui_extensions_store |
| logging: |
| driver: "json-file" |
| options: |
| max-size: "1000k" |
| max-file: "5" |
| |
| {% endfor %} |
| |
| {% if not frontend_only %} |
| {% for svc in xos_services %} |
| {% if svc.synchronizer is defined and svc.synchronizer %} |
| {{ svc.name }}-synchronizer: |
| image: {{ deploy_docker_registry }}xosproject/{{ svc.name }}-synchronizer:{{ deploy_docker_tag }} |
| networks: |
| {% for network in xos_docker_networks %} |
| - {{ network }} |
| {% endfor %} |
| {% if use_redis %} |
| links: |
| - xos_redis:redis |
| depends_on: |
| - xos_redis |
| {% endif %} |
| volumes: |
| - {{ cord_profile_dir }}/node_key:/opt/cord_profile/node_key:ro |
| - {{ cord_dir }}/build/platform-install/credentials/xosadmin@opencord.org:/opt/xos/services/{{ svc.name }}/credentials/xosadmin@opencord.org:ro |
| - {{ cord_profile_dir }}/im_cert_chain.pem:/usr/local/share/ca-certificates/local_certs.crt:ro |
| {% if svc.keypair is defined %} |
| - {{ cord_profile_dir }}/key_import/{{ svc.keypair }}:/opt/xos/services/{{ svc.name }}/keys/{{ svc.keypair }}:ro |
| {% endif %} |
| {% if svc.name == "openstack" %} |
| - {{ cord_profile_dir }}/images:/opt/xos/images:ro |
| {% endif %} |
| logging: |
| driver: "json-file" |
| options: |
| max-size: "1000k" |
| max-file: "5" |
| restart: unless-stopped |
| |
| {% endif %} |
| {% endfor %} |
| {% endif %} |