I’m a big fan of makeshift
Makefiles. Largely because I don’t seem to have the brain capacity to remember long winded commands. Or maybe, I just don’t like typing out long winded commands. One of the two reasons, for sure.
In using a
Makefile to set up a local DNS server to help resolve an issue with multiple different related, but separated Docker projects being able to talk to one another, I ended up coming across this Stack Overflow post which was very helpful.
The solution from the post calls for running a Docker command to spin up a local DNS server, which then allows all the disparate services to talk to one another via
hostname, rather than IP address.
I dutifully created a new
start_dev_dns: @docker run \ --rm \ --hostname=dns.mageddo \ -p 5380:5380 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /etc/resolv.conf:/etc/resolv.conf \ defreitas/dns-proxy-server
It’s hard to spot the fault here. That command looks right to me.
I copy / pasted the command direct from the Stack Overflow post, added in the
--rm flag to ensure the resulting container gets removed when I kill it, and then tried to run the command:
➜ myproject.whatever make start_dev_dns docker: invalid reference format. See 'docker run --help'. make: *** [Makefile:8: start_dev_dns] Error 125
Anyway, after a bit of head scratching, it turns out the issue was an extra space after the line continuation slash.
Really hard to display this one on a blog post. But essentially if you see this and you’re in a similar situation, check you don’t have any rogue spaces after the
\‘s at the end of each line.