No project description provided
Project description
Patterns_for_Continuous_Integration_Docker_Travis_CI_2_DEV
The “Docker repo” pattern: create two separate Git repositories: one for Docker release and another for software development. This keeps the Docker-specific code isolated from the actual software. Developers can continue working on the source software as usual, while the production Docker image is developed separately
This repository is an example of the Git repository for software development.
Specifically, we assume that the team uses some different branches and a certain point a pull-request for merge the master branch is necessary. After committing the master branch:
- before the commit, it is necessary to modify the version number in setup.py so that a new release will be created on the package repository (PyPI in our case)
- on Travis CI a new job is created and pytest tests are performed
- if tests are successful
- a new release will be created on the package repository (PyPI in our case)
- a two new docker development images will be released on the Docker Registry (Docker Hub in our case)
Dockerfile
FROM python:3.6
COPY . /myproject
WORKDIR /myproject
RUN pip install -e .
CMD ["myproject", "run"]
.travis.yml
sudo: required
services:
- docker
env:
global:
- IMAGE_NAME=gtesei/hello_docker_2
- REGISTRY_USER=gtesei
- secure: H8o2BrmikY0e9Gzj1t/Ca1H+hblEv9GC6Qd9MQoN/zxXx0MtiZw3eyCuBO4rpYvX80oeS/e9QM1b4v8OUCsRqGd1nwz4QhRQIRyzh03+n+Sp84qnTqAZvDNbPl0WYDSJyRYFij7SpVP37encJX8ioPaE+YarNn1AGUAVthFOvWhEEeuDGV0lDOXw0j+LsXr1hf821dqvlFLBXPE0dVB6LZD2QEde4BaCQaM+FgBRrcz/bkLMBByviUxdCevJsHSOnhc4rZCbBZ5k5oByJsXVMX/S+SFwP5N4ljkF9rjtIA8fMOlGjk8Z8kXSk3BeLctXGSrZBZBsXG2e89AfBeXFrK91tYdLJROXWdd6MN+U9r+FSIblHqB51zE2zFUpXK9pijUeJLNC2eacdNMRTvxA+tudEIuGkIKkgA4aGw8knoroWXI8ByLtVJA2mXQvlMqiN+pVQt36rwx1Tz0mlw2QOsI713f/JhSoJQNX7flRJrcs2FroCCmDrnpXiE+FN+svjLKz7b07lzw8H78PGfj11YPV8LGDHMRqf0/fu55157QaDgoDKekBLuwXYGT+q5pOu91r+9ywIUo5V8WXel7VM1iUqu3Kjq8DLpwiTErENwEEoq8x5uATXAHsnoXEpBFSj6RsU1BdambMkoz7bbOgviVwTDTGB4jgX7iYdlEYdzA=
language: python
python:
- "3.6"
cache: pip
before_install:
- sudo apt-get update
install: pip install -r requirements-dev.txt
script: pytest
deploy:
provider: pypi
user: gtesei
distributions: sdist bdist_wheel
password:
secure: As9TKWe41QcMXIZ0lKZ7uYblvMbOrWklUjbtZo16juLvDmQDd2dqseEv+eBuI6ur6mov8P0+8MuyOcnDcmeUT0FXTYnjw2BHQC8diH4YvNfupRv6dJDspy3UfI8koQzTJqRfoz30UoCWKS4uU9RYP3uRU6VDIabmECAtKdi3eROeeb88W9LlWMXeuQPiNZlyWFQnHrekRWfzvuZtsxkj5eRtkfUsXTnChbBru0yulv9xIJPcigvvBE/I2DF6c1KFQbtXQ2h4a1FYJ9/NbbHthtvWWSvotJK0825mhiIiCjQwy+GmsiMf5ofnVs7Fe3E0bJLdX8npPBy1BGZnVN4vd+j74Vl/Dtziy5uqFe9bPgYZk3jOBcfnDWrpAdh1Qmt1D4ZBqD0afShSyyMi0N2+B+R58bMuWj3dzgc4zZp0NjCS/S8Qt6c9Q/bYF58hA9rGKGydoKcfmdC80SUPgbYa3UKnEJo+oxtuhZlNB7A+KqccQmfPHgq/Ra4BR3ImUokhW68GVqCB1378ynNAML4vdhTHWBVRnsG+gvk1slrRsH1yOqBQo5IWMkWO8SD2OGp56u7P96m9Oh1yXhPxfCFp/9K/5IWSJ3DsA+TjieUPJW7jbMamw/CQvIOpv+VEfkorh9Oxijf22qt88/dN5OZ6Az2IAxQwBZI7D9BISnibj/w=
on:
branch: master
after_deploy:
- docker pull "${IMAGE_NAME}:develop" || true
- docker build --pull --cache-from "${IMAGE_NAME}:develop" --tag "$IMAGE_NAME" .
- docker login -u "$REGISTRY_USER" -p "$REGISTRY_PASS"
- git_sha="$(git rev-parse --short HEAD)"
- docker tag "$IMAGE_NAME" "${IMAGE_NAME}:develop"
- docker tag "$IMAGE_NAME" "${IMAGE_NAME}:${git_sha}-develop"
- docker push "${IMAGE_NAME}:develop" && docker push "${IMAGE_NAME}:${git_sha}-develop"
Package repository [PyPI]
Docker Registry [Docker Hub]
Useful links
To install Travis
gem install travis
Credits
Defining encrypted variables in .travis.yml
Google Cloud | Continuous Delivery with Travis CI
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 Distribution
Built Distribution
File details
Details for the file python-dev-docker-project-0.3.1.dev0.tar.gz
.
File metadata
- Download URL: python-dev-docker-project-0.3.1.dev0.tar.gz
- Upload date:
- Size: 5.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4bc325887597163877816d66e88be6dbbbc093b12e600e106dfa33899904cce2 |
|
MD5 | 79456a157cc78f1a11f350f03b0f5861 |
|
BLAKE2b-256 | 9665e4b7798a5d2f0885594a686f10f3a475db84bbbb1c21662e78e8d8ec1066 |
File details
Details for the file python_dev_docker_project-0.3.1.dev0-py2.py3-none-any.whl
.
File metadata
- Download URL: python_dev_docker_project-0.3.1.dev0-py2.py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b2ed91dd822e70f1af768a5d051e9c6121f3767134f0bc80c5ecdc22e8ee97d |
|
MD5 | dd3759afc5f866cc3f9604d389dc0600 |
|
BLAKE2b-256 | 4254599e61c6581504cd539aaf4f2555b559a686562606ce3c0e5f97e4fbddc5 |