-
Notifications
You must be signed in to change notification settings - Fork 2
/
params.json
6 lines (6 loc) · 2.48 KB
/
params.json
1
2
3
4
5
6
{
"name": "Dockins",
"tagline": "the best of Docker and Jenkins ",
"body": "### Goal.\r\n\r\nThis project is about getting the best of Docker and Jenkins to offer a simple, efficient CI/CD infrastructure. This project is highly opinionated, so you might disagree :P\r\n\r\n### Embrace Docker.\r\n\r\nJenkins uses it's own mechanisms to control build processes on remote \"agents\" (aka \"slaves\"). Docker API allows to control remote processes as well. We prefer the later. Actually, we have plan to fully remove need for Jenkins remoting\r\n\r\nDocker offer isolated, customizable environment to run process(es). We want end-user to get total flexibility on this.\r\n\r\nDocker can run containers as a composed set of services (aka docker-compose or kubernetes pods). We want to rely on this for end-user to compose a build/test environment for CI/CD, and not consider a container as a lightweight virtual machine.\r\n\r\nDocker offer volumes and volume-drivers to manage data persistence and/or replication with low level control on actual infrastructure. We want to rely on this for build workspace, vs letting Jenkins guess the best node to run build on. \r\n\r\n### Docker executor.\r\n\r\ndocker-slaves-plugin is our first attempt to achieve some of those goals. It runs a set of ephemeral docker containers to host the build, based on configuration set by end user directly in job configuration.\r\n\r\n### Docker Pipeline.\r\n\r\ndocker-slaves-plugin do support pipeline, but still relies on executing arbitrary pipeline steps, and as such on jenkins remoting. We plan to offer an alternative pipeline-specific approach to only support shell commands, and run container detached. Doing this, we can just wait for the container to stop (listening on docker events to get notified) and don't need long-running-task plugin.\r\n\r\nSee [draft design doc](https://gist.github.com/ndeloof/d701cbe1b11deb07dcef729776736361)\r\n\r\n\r\n### Declarative Pipeline.\r\n\r\nA longer terms goal is to offer a declarative pipeline. As pipeline let end-user do arbitrary groovy scripting, it require sandboxing and increased complexity. This can make sense for some use-cases but we want to offer a KISS-level pipeline experience, inspired by travis-ci|circle-ci|drone.io. We can model pipeline stages as docker container(s) running some commands.\r\n\r\nsee [draft design doc](https://gist.github.com/ndeloof/7e0bf5d31b71c87c4fcf4c67f8a3dc51)",
"note": "Don't delete this file! It's used internally to help with page regeneration."
}