Public | Automated Build

Last pushed: 2 years ago
Short Description
CI, but with that all important Docker twist
Full Description

DockCI

DockCI is still alpha! It's certainly not feature complete. It's heading towards MVP.

What is DockCI?

DockCI aims to be one of the missing links in a full Docker CI/CD pipeline.
Currently, most people are testing and deploying containers via build tools
like Jenkins and Bamboo, but these tools were not made for your containerized
new world. The idea of build agents with all your build tools is outdated, the
idea of build steps in your CI config is outdated!

Builds are getting more and more complex, and the old way of approaching CI is
not keeping up. This is what DockCI aims to solve. DockCI's goals are:

  1. Configured only via project git repo
  2. Minimal custom CI interface
  3. Allow effortless, on-demand provisioning of dependant services

Lofty goals! Some might say. But, the tools are already out there. All DockCI
does is pull together some ideas and technologies to help us out.

Sounds great, right? And it will be! But it's not ready yet! Soooooo read on ;D

Requirements

  • Docker 1.6.0 (others may work)
  • Python 3.4 (may work with 3.x, but untested)

Setup

Docker Toolbox

Registry steps are optional. If you do not want to use a registry at all, you
may disable registry support in the config page when DockCI is running.

  1. Install git
  2. Install the Docker Toolbox
  3. Create a new Docker machine (or reuse an existing one): docker-machine create default
    • For insecure private registry support, add --engine-insecure-registry http://localhost:5000
    • For VMWare Fusion, add --driver vmwarefusion
    • The full command for OSX is: docker-machine create --driver vmwarefusion --engine-insecure-registry http://localhost:5000 default
  4. Source the new machine configuration: eval "$(docker-machine env default)"
  5. Clone the DockCI repo: git clone https://github.com/RickyCook/DockCI.git
  6. Change directory to the DockCI directory, and use compose to bring up the stack: docker-compose up
  7. You can get the URL to your new installation with: echo http://$(docker-machine ip default):5001
  8. You can reset all your data at any time with: docker-compose rm

Notes for non-dev setups

  • You can specify a Postgresql database with the DOCKCI_DB_URI environment variable
  • The manage.py script is used to execute commands on the DockCI install
  • Example full run command: DOCKCI_DB_URI=postgres://dockciuser:dockcipass@localhost:5432/dbname ./manage.py run --db-migrate --bind 0.0.0.0:5000

Contributing

If you want to help DockCI see the light of day, pull requests are certainly
accepted! You can probably find something that you can work on in the
GitHub issues. There's also a
waffle.io project board with issues
ranked (approximately) highest to lowest priority. Just choose something that
isn't already labeled as in progress, or already has someone assigned to it
(here's a filter).

The main code base is also really hastily written, so anything that you'd like
to refactor, got nuts! It really needs to be done!

All pull requests must completely pass PEP8 and 10/10 with the pylint config
given. You can check this with make test (that's what Travis does too). No
green CI, no merge!

Make sure you update the CHANGELOG.md with any changes you make, including the
pull request number so that we can easily track changes between versions.
You'll obviously need to create the pull request, then update the changelog to
add the PR number.

If you want to have a talk about ideas, project priorities, etc feel free to
drop me an email at mail[at]thatpanda.com.

Useful issues filters

Docker Pull Command
Owner
thatpanda
Source Repository