0

My problem

I use nomad to schedule and deploy Docker images across several nodes. I am using a pretty stable image, so I want that image to be loaded locally rather than fetched from Dockerhub each time.

The docker.cleanup.image argument should do just that:

docker.cleanup.image Defaults to true. Changing this to false will prevent Nomad from removing images from stopped tasks, which is exactly what I want.

The documentation example is:

client {
  options {
    "docker.cleanup.image" = "false"
  }
}

However, I don't know where this stanza goes. I tried placing it in the job or task sections of the fairly simple configuration file, with no success.

Code (configuration file)

job "example" {
  datacenters = ["dc1"]
  type = "service"
  update {
    max_parallel = 30
    min_healthy_time = "10s"
    healthy_deadline = "3m"
    auto_revert = false
    canary = 0
  }
  group "cache" {
    count = 30
    restart {
      attempts = 10
      interval = "5m"
      delay = "25s"
      mode = "delay"
    }
    ephemeral_disk {
      size = 300
    }
    task "redis" {
      driver = "docker"
      config {
    image = "whatever/whatever:v1"
        port_map {
          db = 80
        }
      }
      env {
    "LOGGER" = "ec2-52-58-216-66.eu-central-1.compute.amazonaws.com"
      }
      resources {
        network {
          mbits = 10
          port "db" {}
        }
      }
      service {
        name = "global-redis-check"
        tags = ["global", "cache"]
        port = "db"
      }
    }
  }
}

My question

Where do I place the client stanza in the nomad configuration file?

Adam Matan
  • 128,757
  • 147
  • 397
  • 562

1 Answers1

1

This doesn't go in your job file, it goes on the nomad agents (the clients where nomad jobs are deployed).

zie
  • 710
  • 4
  • 7