Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydockercompose-0.1.0.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pydockercompose-0.1.0-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

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

Hashes for pydockercompose-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6c6c35f455bfd89eac02f37b180e87b7218a97d07853ed068a342e3bff82070d
MD5 0b9dc4ea6e16698bc8ace29285094e06
BLAKE2b-256 97167226f3c7a8da2488dc2fad4a60d78ad3f320eaff292389f5400a9ec1d8d7

See more details on using hashes here.

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

Hashes for pydockercompose-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 05582865223a1ff6877a255cab974c0a74b2c7222775d327cf1f6681c9b95b58
MD5 8d1bf7a569dc1d62a3523800ccf07a7c
BLAKE2b-256 c0247fb8c5dbaafa79bf4433e2e8123d215a0cdbcadb328c8b363212fd52255c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page