--- x-podman: &podman userns_mode: keep-id security_opt: - "label=disable" x-logging: &default-logging driver: json-file options: mode: non-blocking max-buffer-size: 4m max-size: "200m" max-file: "1" x-common-environment: &common-environment TZ: ${TZ:-UTC} x-resource-limits: &resource-limits deploy: resources: limits: memory: 512M reservations: memory: 128M x-core-resource-limits: &core-resource-limits deploy: resources: limits: memory: 1G cpus: "1.0" reservations: memory: 256M cpus: "0.25" x-light-resource-limits: &light-resource-limits deploy: resources: limits: memory: 256M reservations: memory: 64M volumes: ovos_nltk: name: ovos_nltk driver: local ovos_local_state: name: ovos_local_state driver: local services: ovos_messagebus: <<: [*podman, *resource-limits] container_name: ovos_messagebus hostname: ovos_messagebus restart: unless-stopped image: docker.io/smartgic/ovos-messagebus:${VERSION} logging: *default-logging pull_policy: ${PULL_POLICY:-always} environment: <<: *common-environment network_mode: host volumes: - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft:ro - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - ${TMP_FOLDER}:/tmp/mycroft healthcheck: test: [ "CMD", "python3", "-c", "import socket; s=socket.socket(); s.connect(('localhost', 8181)); s.close()", ] interval: 30s timeout: 10s retries: 3 start_period: 10s ovos_core: <<: [*podman, *core-resource-limits] container_name: ovos_core hostname: ovos_core restart: unless-stopped image: docker.io/smartgic/ovos-core:${VERSION} logging: *default-logging pull_policy: ${PULL_POLICY:-always} environment: <<: *common-environment network_mode: host volumes: - ${OVOS_CONFIG_FOLDER}:/home/${OVOS_USER}/.config/mycroft - ${OVOS_PERSONA_FOLDER}:/home/${OVOS_USER}/.config/ovos_persona - ovos_local_state:/home/${OVOS_USER}/.local/state/mycroft - ovos_nltk:/home/${OVOS_USER}/nltk_data - ${OVOS_SHARE_FOLDER}:/home/${OVOS_USER}/.local/share/mycroft - ${TMP_FOLDER}:/tmp/mycroft depends_on: ovos_messagebus: condition: service_started healthcheck: test: ["CMD", "pgrep", "-f", "ovos-core"] interval: 30s timeout: 10s retries: 3 start_period: 30s hivemind_listener: <<: [*podman, *light-resource-limits] container_name: hivemind_listener hostname: hivemind_listener restart: unless-stopped image: docker.io/smartgic/hivemind-listener:${VERSION} logging: *default-logging pull_policy: ${PULL_POLICY:-always} tty: true environment: <<: *common-environment network_mode: host volumes: - ${HIVEMIND_CONFIG_FOLDER}:/home/${HIVEMIND_USER}/.config/hivemind:z - ${HIVEMIND_SHARE_FOLDER}:/home/${HIVEMIND_USER}/.local/share/hivemind:z depends_on: ovos_core: condition: service_started healthcheck: test: ["CMD", "pgrep", "-f", "hivemind-listener"] interval: 30s timeout: 10s retries: 3 start_period: 15s hivemind_cli: <<: [*podman, *light-resource-limits] container_name: hivemind_cli hostname: hivemind_cli restart: unless-stopped image: docker.io/smartgic/hivemind-cli:${VERSION} logging: *default-logging pull_policy: ${PULL_POLICY:-always} tty: true environment: <<: *common-environment network_mode: host volumes: - ${HIVEMIND_CONFIG_FOLDER}:/home/${HIVEMIND_USER}/.config/hivemind:z - ${HIVEMIND_SHARE_FOLDER}:/home/${HIVEMIND_USER}/.local/share/hivemind:z depends_on: hivemind_listener: condition: service_started