title: Live reload Prometheus configuration in docker(-compose)
body: <p>I have a new server running Prometheus in docker-compose. 
  I want to be able to re-load the configuration file (prometheus.yml) without have to stop and start the container.</p>
  
  <p>Of course since I persist the storage of promethues in a volume the stop and start isn't really a problem but it seems like overkill, especially since prometheus itself has such a handy api to reload configs.</p>
  
  <p>I see other people with similar questions (e.g. <a href="https://stackoverflow.com/questions/46044324/docker-not-propagating-file-changes-from-host-to-container">here</a>) but I have been unable to get those solutions to work for me. Maybe I'm overlooking something there.</p>
  
  <p><strong>docker-compose.yml</strong></p>
  
  <pre><code>version: "3"
  
  services:
  
    grafana:
      restart: always
      container_name: grafana
      image: grafana/grafana:6.2.1
      ports:
        - 3000:3000
      volumes:
        - grafanadata:/var/lib/grafana
  
    prometheus:
      restart: always
      container_name: prometheus
      image: prom/prometheus:v2.10.0
      privileged: true
      volumes:
        - ./configuration/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
        - prometheusdata:/prometheus
  
      command:
        - '--config.file=/etc/prometheus/prometheus.yml'
        - '--web.enable-admin-api'
        - '--web.enable-lifecycle'
      ports:
        - 9090:9090
  
    node:
      restart: always
      container_name: node
      image: prom/node-exporter:v0.18.0
      ports:
        - 9100:9100
  
  volumes:
    grafanadata:
    prometheusdata:
  </code></pre>
  
  <p><strong>Alas, my results..</strong></p>
  
  <p>When I run <code>curl -X POST http://localhost:9090/-/reload</code> the docker-compose logs give:</p>
  
  <pre><code>prometheus    | level=info ts=2019-06-17T15:33:02.690Z caller=main.go:730 msg="Loading configuration file" filename=/etc/prometheus/prometheus.yml
  prometheus    | level=info ts=2019-06-17T15:33:02.691Z caller=main.go:758 msg="Completed loading of configuration file" filename=/etc/prometheus/prometheus.yml
  </code></pre>
  
  <p>So the prometheus' end is working fine.. All good so far.</p>
  
  <p>However, when I edit <code>./configuration/prometheus/prometheus.yml</code> the changes don't propogate to the container. 
  Furthermore, when I try to edit <code>/etc/promethus/prometheus.yml</code> in container I see that it is read only (and as an aside, the container does not have a 'sudo' command).</p>
  
  <p>Is there a docker native way to hot/live reload these config files to the container directory?</p>
  
  <p>As stated, the down/start option works for now but I'm curious if there is a more elegant solution.</p>