version: "3.9" services: control-api: image: ${IMAGE_PREFIX:-cloudlysis}/control-api:${IMAGE_TAG:-dev} environment: CONTROL_API_ADDR: "0.0.0.0:8080" CONTROL_PLACEMENT_PATH: "/etc/control/placement.json" CONTROL_SWARM_STATE_PATH: "/etc/control/swarm_state.json" CONTROL_SELF_URL: "http://control-api:8080" configs: - source: control_placement_dev target: /etc/control/placement.json - source: control_swarm_state_dev target: /etc/control/swarm_state.json networks: - internal ports: - target: 8080 published: 8080 protocol: tcp mode: ingress deploy: replicas: 1 restart_policy: condition: on-failure control-ui: image: ${IMAGE_PREFIX:-cloudlysis}/control-ui:${IMAGE_TAG:-dev} environment: VITE_CONTROL_API_URL: "http://control-api:8080" networks: - public - internal ports: - target: 80 published: 8081 protocol: tcp mode: ingress deploy: replicas: 1 restart_policy: condition: on-failure configs: control_placement_dev: file: ../../placement/dev.json control_swarm_state_dev: file: ../../swarm/dev.json networks: public: driver: overlay internal: driver: overlay