Package to generate docker compose files.
Project description
pydockercompose
Description
This package is a python package for generating Docker Compose file. It contains two classes :
- DockerCompose : It represents docker-compose file.
In this version, it supports adding the following parameters:
- version
- services
- volumes
- networks
- Service: This class represent docker compose service.
In this version, Service class supports adding the following parameters:
- container_name
- image
- build
- environment
- restart
- ports
- volumes
- networks
- ulimits
- links
- depends_on
- command
- entrypoint
- network_mode
To find out more about these parameters, you can check docker-compose documentation.
Usecase
In this example we used pydockercompose package to generate docker-compose.yml for :
-
ElasticSearch service
-
ElasticSearch Client service that will be built using Dockerfile.
import pydockercompose import os,sys def generate_elastic_docker_compose_file(): docker_compose = DockerCompose(version="3.3") # Create ElasticSearch service. elastic_svc = Service(container_name="es", image="elasticsearch:7.13.3", restart="on-failure", ports=["9200:9200"], networks=["es-network"], volumes=["es-data:/usr/share/elasticsearch/data"], environments=["discovery.type=single-node"]) elastic_svc.set_ulimits("memlock", {"soft": -1, "hard": -1}) # Create ElasticSearch Customer service. cmd = "while [ 1 -e 1 ]; do curl 'http://es:9200/' && sleep 3 ; done" with open("Dockerfile", "w") as dockerfile: dockerfile.write("FROM alpine:3\nRUN apk add curl\nCMD "+cmd) customer_svc = Service(container_name="es-customer", build=".", restart="on-failure", depends_on=["es"], networks=["es-network"]) # Add services to DockerCompose object. docker_compose.add_service("es", elastic_svc) docker_compose.add_service("es-customer", customer_svc) # Add the network es-network docker_compose.add_network("es-network", {"driver": "bridge"}) # Add the volume es-data docker_compose.add_volumes("es-data", {"driver": "local"}) return docker_compose if __name__ == '__main__': generate_elastic_docker_compose_file().to_yaml() os.system("docker-compose up")
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 pydockercompose-0.1.0.tar.gz.
File metadata
- Download URL: pydockercompose-0.1.0.tar.gz
- Upload date:
- Size: 5.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.8.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c6c35f455bfd89eac02f37b180e87b7218a97d07853ed068a342e3bff82070d
|
|
| MD5 |
0b9dc4ea6e16698bc8ace29285094e06
|
|
| BLAKE2b-256 |
97167226f3c7a8da2488dc2fad4a60d78ad3f320eaff292389f5400a9ec1d8d7
|
File details
Details for the file pydockercompose-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pydockercompose-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.8.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
05582865223a1ff6877a255cab974c0a74b2c7222775d327cf1f6681c9b95b58
|
|
| MD5 |
8d1bf7a569dc1d62a3523800ccf07a7c
|
|
| BLAKE2b-256 |
c0247fb8c5dbaafa79bf4433e2e8123d215a0cdbcadb328c8b363212fd52255c
|