Skip to main content

A Docker build system for managing docker.

Project description

Docker Build System

PyPI version Build Status MIT license

A simple library for handling docker commands with python.

Install Or Upgrade

  • pip install --upgrade DockerBuildSystem

Example

  • Include DockerBuildSystem tools:
from DockerBuildSystem import DockerComposeTools, DockerImageTools, DockerSwarmTools, TerminalTools, VersionTools
  • Merge, build and run docker-compose.*.yml files:
composeFiles = [
    'docker-compose.yml',
    'docker-compose.build.yml',
    'docker-compose.override.yml'
]
mergedComposeFile = "docker-compose.generated.dev.yml"
DockerComposeTools.MergeComposeFiles(composeFiles, mergedComposeFile)
DockerComposeTools.DockerComposeBuild([mergedComposeFile])
DockerComposeTools.DockerComposeUp([mergedComposeFile])
  • Push and pull images in docker-compose.*.yml files, including additional latest tag:
composeFiles = [
    'docker-compose.yml'
]
DockerComposeTools.DockerComposePush(composeFiles)
DockerComposeTools.PublishDockerImagesWithNewTag(composeFiles, 'latest')
DockerComposeTools.DockerComposePull(composeFiles)
  • Execute test projects in Docker containers and raise exception if container exits with error code due to failing tests:
composeFiles = [
    'docker-compose.tests.yml'
]
testContainerNames = [
    'lab-services-tests'
]
DockerComposeTools.ExecuteComposeTests(composeFiles, testContainerNames)
  • Load set of specific environment variables from a *.env file:
TerminalTools.LoadEnvironmentVariables('path_to/variables.env')
  • Export top-most version from CHANGELOG.md file (see the example folder) as an environment variable:
VersionTools.ExportVersionFromChangelogToEnvironment("path_to/CHANGELOG.md", "version")
  • Optionally export versionmajor and versionminor based on the top-most version from CHANGELOG.md file as an environment variable:
VersionTools.ExportVersionFromChangelogToEnvironment("path_to/CHANGELOG.md", "version", "versionmajor", "versionminor")
  • to use the DockerComposeTools.PromoteDockerImages functionality, provide the following parameters:
  • composeFile - the compose file containing theimages that should be promoted
  • targetTags - the tags you want to use when you push the image to the new feed
  • sourceFeed - the feed you want to pull the images from (should match the compose file)
  • targetFeed - the feed you want to push to
  • user - used for authenticating to sourceFeed and targetFeed
  • password - used for authenticating to sourceFeed and targetFeed
  • dryRun - boolean. True if you want to do a dryRun, i.e. print what would have happened

Please have a look at an example of use here:

Prerequisites

Additional Info

Publish New Version.

  1. Configure setup.py with new version.
  2. Install build tools: pip install twine wheel
  3. Build: python setup.py bdist_wheel
  4. Check: twine check dist/*
  5. Publish: twine upload dist/*

Test a new version locally

  1. Build: python setup.py bdist_wheel
  2. Install from local file with force-reinstall and no-cache-dir options to force reinstallation when you have changed the code without changing the version number: python -m pip install path\to\yourgitrepo\DockerBuildSystem\dist\DockerBuildSystem-1.1.43-py2.py3-none-any.whl --force-reinstall --no-cache-dir

Run Unit Tests

  • python -m unittest

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

DockerBuildSystem-1.1.58-py2.py3-none-any.whl (11.2 kB view details)

Uploaded Python 2Python 3

File details

Details for the file DockerBuildSystem-1.1.58-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for DockerBuildSystem-1.1.58-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 89d4d18d72e3cd6620a17b372b013b9d655aef909005527d4a62990bb35e89ec
MD5 6842062103a9c867b000f129dea25dab
BLAKE2b-256 b3bc15e7bb164b8cbb58d6b9beb891450a1562e54857c50ca067ca39b55d8b3d

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