webentwicklung-frage-antwort-db.com.de

Hängen Sie ein Volume in docker-compose ein. Wie wird es gemacht?

Wenn ich diesen Befehl in einer Konsole ausführe:

 docker run -it --rm --link rabbit --link elasticsearch -v "$PWD"/logstash:/config-dir logstash logstash -f /config-dir/logstash.conf

Es läuft gut. Im Ordner ./logstash befindet sich eine logstash.conf. Aber jetzt versuche ich ein Docker-Compose einzubauen und das gleiche funktioniert nicht:

  logstash:
  image: logstash:latest
  links:
    - "elasticsearch:elasticsearch"
    - "rabbit:rabbit"
  volumes:
      - $PWD/logstash:/config_dir
  command:
    - "-f /config_dir/logstash.conf"

Aber ich kann den Unterschied zwischen beiden Befehlen nicht erkennen. Etwas Hilfe? Wie erfolgt die Volumemontage? Oder funktioniert der Befehl nicht? Antwort von logstash init ist:

logstash_1        | {:timestamp=>"2016-07-06T15:43:06.663000+0000", :message=>"No config files found: / /config_dir/logstash.conf\nCan you make sure this path is a logstash config file?", :level=>:error}
rabbitmq_logstash_1 exited with code 1

Edit: Ich habe das Problem endlich gelöst, indem ich den Befehl entfernt und den Standardbefehl des Originalbilds verwendet habe, aber ich verstehe das Problem immer noch nicht und wie derselbe Befehl an docker übergeben wird und funktioniert, aber wenn es wird an docker-compose don't übergeben. Danke im Voraus

14
Killrazor

Ihre Konfiguration funktioniert wahrscheinlich nicht, da Ihre Version von docker-compose beim Erstellen Ihres Containers keine Shell-Erweiterungen ausführt. Das bedeutet, dass docker compose versucht, einen wörtlichen Pfad $PWD/logstash Zu finden, anstatt $PWD In Ihr aktuelles Verzeichnis zu erweitern. Spätere Versionen von Docker Compose ermöglichen die Erweiterung von Umgebungsvariablen.

Docker-compose erlaubt relative Pfade durch die Verwendung von ./, Das auf den Ordner verweist, in dem sich die Compose-Datei befindet, nicht unbedingt Ihr pwd ,, daher müssen Sie nur Ihre Erstellungsdatei ändern, um:

volumes:
    - ./logstash:/config_dir
24
Will Barnwell