blob: 4939307beeada9bb61d81a0853917a24c116ec48 [file] [log] [blame]
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-spa-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-rest-gateway:xos-rest-gw
- xos_chameleon:xos-chameleon
depends_on:
- xos-rest-gateway
- 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
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:argon
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-rest-gateway:
image: {{ deploy_docker_registry }}xosproject/xos-rest-gw:{{ 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 %}