GoCD + Docker 🐳 + Docker
Compose 🐙: uma história de
amor ❤
Stefan Teixeira
@stefan_teixeira
stefanfk@gmail.com
stefanteixeira.com.br
stefanteixeira.com
• QA Engineer @ M4U
• Entusiasta de Automação de Testes, Agile Testing e DevOps
• Blogs técnicos: stefanteixeira.com.br (pt-br) /
stefanteixeira.com (en)
Contatos:
• E-mail: stefanfk@gmail.com
• Twitter: twitter.com/stefan_teixeira
• Facebook: facebook.com/stefan.teixeira
• LinkedIn: linkedin.com/in/stefanteixeira
• GitHub: github.com/stefanteixeira
• SlideShare: slideshare.net/stefanteixeira
Sobre
O que é GoCD?
GoCD
• Criado pela ThoughtWorks
https://www.go.cd/ | https://github.com/gocd/gocd
GoCD
• Criado pela ThoughtWorks
• Open-source (desde Fev/2014)
https://www.go.cd/ | https://github.com/gocd/gocd
GoCD
• Criado pela ThoughtWorks
• Open-source (desde Fev/2014)
• Foco em Continuous Delivery
https://www.go.cd/ | https://github.com/gocd/gocd
Por que GoCD?
O poder das abstrações certas
Pipelines são first-class citizens
Como funciona?
Documentação
https://docs.go.cd/current/
API Reference
https://api.go.cd/current/
Plugins
https://www.go.cd/community/plugins.html
GoCD x Jenkins
GoCD x Jenkins
Mas o Jenkins não faz isso tudo?
Faz, mas…
Build Pipeline Plugin
Build Pipeline Plugin
💩
Build Flow Plugin
Build Flow Plugin
É bom, mas não suporta steps manuais… 😞
Pipeline Plugin (antigo Workflow)
• TUDO em Job DSL (Groovy) 👍
Pipeline Plugin (antigo Workflow)
• TUDO em Job DSL (Groovy) 👍
• Foco em Continuous Delivery 👍
Pipeline Plugin (antigo Workflow)
• TUDO em Job DSL (Groovy) 👍
• Foco em Continuous Delivery 👍
• Visualização decente só na versão
paga 💩
GoCD + Docker
Quando vi o GoCD rodando
Imagens do GoCD no DockerHub
https://hub.docker.com/r/gocd/gocd-server/ | https://hub.docker.com/r/gocd/gocd-agent/
Customizando imagens
https://github.com/gocd/gocd-docker
GoCD + Docker Compose
GoCD + Docker Compose
• Volumes: 2 opções possíveis
GoCD + Docker Compose
• Volumes: 2 opções possíveis
➡ Mapeamento com host
GoCD + Docker Compose
• Volumes: 2 opções possíveis
➡ Mapeamento com host (mais
simples, menos portável)
GoCD + Docker Compose
• Volumes: 2 opções possíveis
➡ Mapeamento com host (mais
simples, menos portável)
➡ Data container
GoCD + Docker Compose
• Volumes: 2 opções possíveis
➡ Mapeamento com host (mais
simples, menos portável)
➡ Data container (menos simples,
porém mais recomendado)
E se eu quiser 3 agents?
E se eu quiser 3 agents?
👏👏👏👏👏
E pra rodar Docker dentro do GoCD?
OBS: Dependendo do OS,
binding de algumas
libs serão necessárias!
Outros Projetos
Build Window
https://github.com/rouanw/build-window
CI Remote
http://timoa.com/projects/ci-remote-for-go-server
Demonstração
Referências
• https://highops.com/insights/continuous-
delivery-pipelines-gocd-vs-jenkins/
• http://thoughtworks.github.io/p2/issue11/go-
cd-the-right-tool-for-he-job/
• PS: Outras referências estão nos slides, na
parte de baixo 😃
Obrigado!
Stefan Teixeira
@stefan_teixeira
stefanfk@gmail.com
stefanteixeira.com.br
stefanteixeira.com

Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor