2

次のコマンドを使用している間:

$ dcos marathon app add example.json

出力を受け取りますError: Object is not valid

example.json

{
"id": "es-cluster",
"env": {
    "MARATHON_URL": "http://127.0.0.1:8080",
    "APP_ID": "es-cluster",
    "ELASTICSEARCH_CLUSTER_NAME": "CLUSTERNAME"
},
"container": {
    "type": "DOCKER",
    "volumes": [
      {
            "containerPath": "data",
            "mode": "RW",
            "persistent": {
                "size": 1000
            }
      }
    ],
    "docker": {
        "image": "some/dockerImage",
        "network": "BRIDGE",
        "portMappings": [{
            "containerPort": 9200
        }, {
            "containerPort": 9300
        }]
    }
},
"cpus": 0.5,
"mem": 1024,
"instances": 2
}

ボリューム ブロックを削除する (または空のままにする) と、正常に動作します。

また、Marathon で直接ボリューム ブロックを使用して実行すると、完璧に動作します。

DCOS を使用して永続ボリュームを持つアプリを作成するにはどうすればよいですか?

4

1 に答える 1

4

動作するようになりました。

Marathon api http://marathon-ip:8080/v2/appsを使用して example.json を POST しようとしたところ、次のメッセージが表示されました。

{"メッセージ":"オブジェクトが無効です","詳細":[{"パス":"/value/upgradeStrategy","エラー":["1.0 を取得、0.5 以下を期待","1.0 を取得、0.0 を期待"]},{"path":"/value/isResident","errors":["false にする必要があります"]}]}

次に、Marathon UI を使用してアプリ (ボリューム付き) を作成し、参照用に json をコピーしました。marathon がこのブロックを追加していることに気付きました:

  "upgradeStrategy": {
    "minimumHealthCapacity": 0.5,
    "maximumOverCapacity": 0
  }

このブロックを元の example.json (質問に投稿) に追加した後、機能しました。

于 2016-05-09T08:40:13.087 に答える