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 discover -p Test.py

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

DockerBuildSystem-1.1.61-py2.py3-none-any.whl (11.8 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

File hashes

Hashes for DockerBuildSystem-1.1.61-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 bf6b0724255bbe6973961896b82a138b228d5c18c423bf5f1196c5acdb584986
MD5 b02c7594a3eef6a44c471861024c6572
BLAKE2b-256 2743146c414fe07f10d8d60fdafd81620af627fffccc55508a0f8a854a1d9ecd

See more details on using hashes here.

Supported by

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