worstcase / blockade

Docker-based utility for testing network failures and partitions in distributed applications
http://blockade.readthedocs.org
Apache License 2.0
907 stars 72 forks source link

Support environment variables in volume names #76

Open danielmai opened 5 years ago

danielmai commented 5 years ago

For the volumes configuration I want to use shell environment variables within the config string when specifying the directory paths to mount.

I want to be able to do this:

volumes:
  "$GOPATH/bin": "/gobin"

This should pick up the environment variable $GOPATH and use that for bind-mounting the directory to the container. That's how it works in a Docker Compose file.

Instead, in blockade, not only does it not recognize and expand the environment variable, it also creates a directory called $GOPATH and a subdirectory $GOPATH/bin in the current working directory.

danielmai commented 5 years ago

Ah, I just noticed that blockade does support environment variables.

https://github.com/worstcase/blockade/blob/master/blockade/config.py#L190

But it only accepts it with curly braces. ${GOPATH} works, but not $GOPATH. At least I can get it working now.

labisso commented 5 years ago

Yeah that is a good point, the env variable parsing is quite basic. I think it was a quick hack thrown in, but that'd be a good thing to improve. I'll keep this open as a reminder.