Overriding logstash.yml in Docker not working


I am trying to run Logstash in the Docker Toolbox (I have Windows 7) and I am having a few difficulties.

The default logstash.yml from the Logstash image has x-pack preferences listed in it. I want to override this file and use my own logstash.yml file. I've followed the instructions in the Logstash guide for Docker but have still been unsuccessful.

Default logstash.yml :

http.host: ""
path.config: /usr/share/logstash/pipeline
xpack.monitoring.elasticsearch.url: http://elasticsearch:9200
xpack.monitoring.elasticsearch.username: logstash_system
xpack.monitoring.elasticsearch.password: changeme

My logstash.yml :

http.host: ""
path.config: /usr/share/logstash/pipeline

My Docker toolbox command :

$ docker run --rm -it  -v /d/apps/logstash-5.6.3/config/yaml/logstash.yml/:/usr/share/logstash/config/logstash.yml docker.elastic.co/logstash/logstash:5.6.3

Output :

C:\Program Files\Docker Toolbox\docker.exe: Error response from daemon: oci run 
time error: container_linux.go:295: starting container process caused
"process_linux.go:399: container init caused \"rootfs_linux.go:57: mounting 
\\\"/d/apps/logstash-5.6.3/config/yaml/logstash.yml\\\" to rootfs \\\"/mnt/sda1/var/lib/docker/aufs/mnt/3778e698e26c9a3d0f875c65e9bc14482a7f27bb4b4e4c23ab58049414631b14\\\" 
at  \\\"/mnt/sda1/var/lib/docker/aufs/mnt/3778e698e26c9a3d0f875c65e9bc14482a7f27bb4b4e4c23ab58049414631b14/usr/share/logstash/config/logstash.yml\\\" caused \\\"not a directory\\\"\""
: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type. 

The output is somewhat hard to read in my console so I tried to format it a bit better here. I apologize i it is still difficult to read.

My goal is to either successfully override the default logstash.yml with my own file or use command line arguments to override the x-pack preferences.

Thank you for your help!



I haven't Windows and Docker Toolbox environment for now to test it, but looking at your docker run command, there is a / after the logstash.yml filename for the local path -v /d/apps/logstash-5.6.3/config/yaml/logstash.yml/:/usr/share/logstash/config/logstash.yml

It could be an error that fit with the message Are you trying to mount a directory onto a file (or vice-versa)?

Can you try without the /?

docker run --rm -it  -v /d/apps/logstash-5.6.3/config/yaml/logstash.yml:/usr/share/logstash/config/logstash.yml docker.elastic.co/logstash/logstash:5.6.3

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.