Enables jinja like preposessing of docker-compose files.
Project description
jinja-docker-compose
jinja-docker-compose is a simple python script that wraps docker-compose to provide Jinja2 based templating ability to docker-compose. It is based on 'jinja-compose'.
Dependencies
jinja-docker-compose requires following dependencies to be installed on the system:
- python3
- python3-pip
- Docker engine
Installing
To install the script, simply run:
$ pip install jinja-docker-compose
The script is installed in ~/.local/bin. If not in the PATH add the following to your initiation script, like .bashrc
PATH=~/.local/bin:$PATH
Using jinja-docker-compose
The jinja-docker-compose preprocess the docker-compose file to act upon for instance for loops and conditional statements. The variables used in the preprocessing resides in a dictionnay file in JSON format.
jinja-docker-compose can either just do the pre-processing or as well run docker-compose on the processed file.
Example of dictionary file:
{
"LOGGING": "false",
"N_GPU": 2
}
docker-compose file to preprocess:
version: "3"
services:
{% for i in range(N_GPU) %}
ubuntu{{i}}:
image: ubuntu:latest
{% endfor %}
ubuntulog:
image: ubuntu:latest
{% if LOGGING == 'true' %}
logging:
driver: syslog
options:
syslog-address: "tcp://graylog.example.com:516"
{% endif %}
After processing the file looks like this:
version: "3"
services:
ubuntu1:
image: ubuntu:latest
ubuntu2:
image: ubuntu:latest
ubuntulog:
image: ubuntu:latest
The default names of the files are:
| File | Default name |
|---|---|
| Input file to preprocess | docker-compose.yml.j2 |
| Dictionary file | docker-compose.dic |
| Output file | docker-compose.yml |
The options are:
| Option | Description |
|---|---|
| -f | Input file name |
| -D | Dictionary file name |
| -o | Output file name |
| --loader | Uses the FullLoader when loading the YAML, this enables the possible exploit that the FullLoader opens up for. |
| -r | Apart from genereates the output file, also run docker-compose |
All options that are valid options to docker-compose can also be given to jinja-docker-composeand then passed on to docker-compose
Depending on how your system is configured, you may need to run the script with sudo (i.e. if you usually need sudo to run docker, you will need sudo).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jinja_docker_compose-2.0.2.tar.gz.
File metadata
- Download URL: jinja_docker_compose-2.0.2.tar.gz
- Upload date:
- Size: 4.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.2 CPython/3.8.10 Linux/5.4.0-131-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9cb47601bdab7a9826155a786f7b781709544044c93b4e8f03dff2c716a55c8a
|
|
| MD5 |
084cbfc0744ee37d4bebe5afbfb770fc
|
|
| BLAKE2b-256 |
756e304408ac506f01d8a13c20bcd2410c9aaa2d2544607cb8717bedad0713bf
|
File details
Details for the file jinja_docker_compose-2.0.2-py3-none-any.whl.
File metadata
- Download URL: jinja_docker_compose-2.0.2-py3-none-any.whl
- Upload date:
- Size: 4.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.2 CPython/3.8.10 Linux/5.4.0-131-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d2822d15fc93ec9bcf3240081cfa4e71b628e2c2886f476867ae685ddff0c76
|
|
| MD5 |
2ba668057c9667af5fff514868f4df2c
|
|
| BLAKE2b-256 |
2281c424f7f0b97540ad8723b8b214f823877f8bae6139aab204a2a941f44591
|