ddsl
Docker Declarative Specific Language
ddsl lets you declare how your docker images are built and what checks (test, linter, etc) need be run in your images.
version: 1
builds:
- name: feature-branch
type: docker
context: .
file: docker/Dockerfile
tags:
- bilby91/ddsl:$CI_SHA1
push: true
cache_from:
- bilby91/ddsl:latest
- name: master-branch
type: docker
context: .
file: docker/Dockerfile
tags:
- bilby91/ddsl:$CI_SHA1
- bilby91/ddsl:latest
push: true
cache_from:
- bilby91/ddsl:latest
- name: dev
type: docker-compose
file: docker/docker-compose.yml
runs:
- name: bash
type: docker-compose
file: docker/docker-compose.yml
service: ddsl
cmd: /bin/bash
- name: test-ci
type: docker
image: bilby91/ddsl:$CI_SHA1
cmd: bundle exec rspec spec
- name: test
type: docker
image: bilby91/ddsl:latest
cmd: bundle exec rspec spec
- name: lint-ci
type: docker
image: bilby91/ddsl:$CI_SHA1
cmd: rubocop .
- name: lint
type: docker
image: bilby91/ddsl:latest
cmd: rubocop .
Contnious Integration
| Provider | Status |
|---|---|
| GitLab CI | |
| Circle CI | |
| Travis CI |
Dependencies
- ruby
- docker
- docker-compose
TODO
- [X] Docker Compose support
- [X] Variable interpolation
- [X] Add CircleCI
- [X] Add GitLabCI
- [X] Add TravisCI
- [ ] Registries?
- [ ] Variable sharing/reusing
- [ ] External secret proviers ? (KMS, Google?)
Contact
- Martín Fernández [email protected]