https://ondrej-sika.cz/blog/2018/talk-automatizace-pomoci-gitlab-ci-a-dockeru/
Automation usingGitlab CI and DockerOndrej Sika[email protected]DevHeaven,Pilsen CZ, 21. 4. 2018
View Slide
Goals- Build application- Auto deploy to test- Manual deploy toproduction
Tools- Git- Gitlab + Gitlab CI- Docker- Traefik
Setup CI environment
Gitlab CI Runnerdocker-machine create runnereval $(docker-machine env runner)git clone [email protected]:ondrejsika/gitlab-ci-runner.gitcd gitlab-ci-runner./create-runner.sh./register-runner.sh GITLAB_CI_TOKEN
Server
Traefik Proxygit clone [email protected]:ondrejsika/traefik-ssl.gitcd traefik-ssl# put SSL cert.pem and key.pem to certs/ ditdocker-compose up -d
Gitlab
Gitlab- Create Gitlab project- Setup CI sercret variables- SSLPASS (password to server which runs the app)
Application
Application- Dockerize project- Add .gitlab-ci.yml (CI config)
Clone Jekyll Websitegit clone [email protected]:ondrejsika/jekyll-demo.gitcd jekyll-demogit remote rename origin githubgit remote add origin [email protected]:test/jekyll.gitgit push origin master -u
Dockerizegit reset --hard github/dockercat Dockerfile
Add Gitlab CI configurationgit reset --hard github/gitlab-cicat .gitlab-ci.yml
Push & some magic hapens
Pushgit push origin master -u
Make some changesgit checkout -b awesome-headervim index.mdgit commit -am 'make header awesome'git push origin awesome-header -u
Resources- https://github.com/ondrejsika/jekyll-demo- https://github.com/ondrejsika/traefik-ssl- https://github.com/ondrejsika/gitlab-ci-runner- https://github.com/ondrejsika/ondrejsika-ci-docker- https://traefik.io/
Thank you & QuestionsOndrej Sikaemail: [email protected]web: ondrej-sika.cztwitter: @ondrejsikalinkedin: /in/ondrejsika/Slides: https://sika.link/devheaven2018