
# Copyright 2017-present Open Networking Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


version: '2'

networks:
  xos:
    external: true

services:
  synchronizer:
    image: xosproject/vnodlocal-synchronizer
    networks:
      - xos
    #command: bash -c "sleep 86400"
    volumes:
        - /opt/cord_profile/node_key:/opt/cord_profile/node_key:ro
        - /opt/cord/build/platform-install/credentials/xosadmin@opencord.org:/opt/xos/services/metronet-local/credentials/xosadmin@opencord.org
    external_links:
        - rcordbs_xos_redis_1:redis
    logging:
      driver: "json-file"
      options:
        max-size: "1000k"
        max-file: "5"