Search code examples
mesosmarathon

Mesos Marathon deploy was failed when added parameters in Json file


I was trying to deploy ngnix docker container by mesos Marathon, I would like to set some environment variables in the container, so I added parameter section in the Json file, but after I added the parameter section, it was failed. My Json file as following:

{
  "container":{
    "type":"DOCKER",
    "docker":{
      "image":"nginx",
      "network":"BRIDGE",
      "portMappings":[{"containerPort":80,"hostPort":0,"servicePort":80,"protocol":"tcp"}],
      "parameters": [
                { "key": "myhostname", "value": "a.corp.org" }
            ]
    }
  },
  "id":"nginx7",
  "instances":1,
  "cpus":0.25,
  "mem":256,
  "uris":[]
}

my launch script was: curl -X POST -H "Content-Type: application/json" 10.3.11.11:8080/v2/apps -d@"$@"

The command I ran was: ./launch.sh nginx.json


Solution

  • You used the wrong parameter key myhostname, if you want to setup hostname for you container, it should be:

    "parameters": [
                { "key": "hostname", "value": "a.corp.org" }
            ]
    

    if you want to pass environment variable, it should be:

    "parameters": [
                { "key": "env", "value": "myhostname=a.corp.org" }
            ]