A Docker build system for managing docker.
Project description
Docker Build System
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
- Docker:
- Install Dependencies:
- pip install -r requirements.txt
Additional Info
- The pip package may be located at:
Publish New Version.
- Configure setup.py with new version.
- Install build tools:
pip install twine wheel
- Build: python setup.py bdist_wheel
- Check: twine check dist/*
- Publish: twine upload dist/*
Test a new version locally
- Build: python setup.py bdist_wheel
- 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
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 Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
File details
Details for the file DockerBuildSystem-1.1.61-py2.py3-none-any.whl
.
File metadata
- Download URL: DockerBuildSystem-1.1.61-py2.py3-none-any.whl
- Upload date:
- Size: 11.8 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.8.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf6b0724255bbe6973961896b82a138b228d5c18c423bf5f1196c5acdb584986 |
|
MD5 | b02c7594a3eef6a44c471861024c6572 |
|
BLAKE2b-256 | 2743146c414fe07f10d8d60fdafd81620af627fffccc55508a0f8a854a1d9ecd |