Docker-compose module: #!shebang
You can make your
docker-compose.yaml executable by adding a `shebang line as first
line in the YAML file.
As you might know the shebang line is the first line in a shell script that determines which
interpretor to run for the script. For Bash scripts it is usually
We can add a shebang line that tells the kernel that we want the Space module docker-compose to be the interpreter so it can directly run the yaml file.
For Linux add this line as the very first line in your
#!/usr/bin/space -m docker-compose /_shebang/
For MacOS systems add this line instead:
#!/usr/bin/env space ! -m docker-compose /_shebang/ !
Then you need to make the yaml file executable:
$ chmod +x docker-compose.yaml
Alright, it should be runnable directly from command line:
$ ./docker-compose.yaml -- up $ ./docker-compose.yaml -- ps $ ./docker-compose.yaml -- down
Pretty neat, uh?
Oh, there is more. We can wrap it using the SSH module to have it being deployed remotely:
$ ./docker-compose.yaml -m ssh /wrap/ -eSSHHOST=address -- up
It is important to add
-m ssh /wrap/ -eSSHHOST=address before the double dash
Because everything left of
-- are arguments to Space and everything to the right of
are arguments to the module.
Remember, that if you want to see the magic behind the scenes, add the
-d flag to Space
to have it dump out the script for debugging, inspection and sharing.