When I use docker run to accomplish the same task, the volume is not working as it should. The file config.js is seen within the container as a folder !! Any ideas?
Why are you storing these files at path /ghost and not in /home/you or similar? Is this Docker for Mac? Native Linux? What does the output of the volumes section in docker inspect for the created containers say for the ones created by Compose and the ones created by docker run?
First thank you very much taking time on this. I didn’t give you enough details previously. Sorry for this. Here you should be able to see the whole picture.
Why are you storing these files at path /ghost and not in /home/you or similar? My ghost directory is side by side with my docker-compose file
What does the output of the volumes section in docker inspect for the created containers say for the ones created by Compose and the ones created by docker run?
docker: Error response from daemon: create ./ghost/volumes/content: “./ghost/volumes/content” includes invalid characters for a local volume name, only “[a-zA-Z0-9][a-zA-Z0-9_.-]” are allowed.
See ‘docker run --help’.
run wants absolute paths. You’re trying to use relative path here but starting them with / (I’m not sure why Compose lets you get away with this – it should be ./ghost/volumes/content if I understand correctly). Since that directory doesn’t exist on the host docker will go and create it then bind mount that empty directory into the container.
If you’re going to use docker run you have to do something like -v $(pwd)/ghost/volumes/config.js:/var/lib/ghost/config.js or (the expansion of that subshell) -v /home/myuser/git-repo-projectname/_apps/userid/ghost/volumes/config.js:/var/lib/ghost/config.js