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

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

DockerBuildSystem-1.1.64-py2.py3-none-any.whl (12.2 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

File hashes

Hashes for DockerBuildSystem-1.1.64-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 5f5ca3fa6d0456d01c649174909be35b8507eb9c6a3007662ac2f70b0a905c7d
MD5 18963fc2f4568e03414038f0deb22707
BLAKE2b-256 3094f37306842b3d7d37a2c0be75de1805774361a9dde5691f6c73b3e234f109

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