Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GitLab CI x Docker のススメ
Search
morizyun
November 03, 2016
Programming
5.2k
15
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GitLab CI x Docker のススメ
2016/11/1 Roppongi.rb での LTの資料です〜
morizyun
November 03, 2016
More Decks by morizyun
See All by morizyun
履歴書サービスでのLLMを使った機能の事例
morizyun
0
310
個人開発におすすめの Next.js 技術スタック
morizyun
1
1.4k
継続的個人開発のコツ
morizyun
1
60k
Digdag x Dockerでモダンなバッチ処理環境を構築
morizyun
3
27k
Mini-Heroku "Dokku"
morizyun
0
400
Overcommit & Pronto Introduction
morizyun
0
1k
I Enjoyed First English LT @ RedDotRubyConf
morizyun
0
2k
Learning Through Blogging: Ruby Blogging Benefits
morizyun
0
990
英語で広がるRubyの世界
morizyun
4
2.3k
Other Decks in Programming
See All in Programming
これからAgentCoreを触る方へトレンドはGatewayです
har1101
5
430
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
310
どこまでゆるくて許されるのか
tk3fftk
0
270
Oxcを導入して開発体験が向上した話
yug1224
4
350
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
130
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
270
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
130
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.4k
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
2.4k
はてなアカウント基盤 State of the Union
cockscomb
1
1.1k
Datadog LLM Observabilityで実現する 安全なLLM Usage 管理
3150
0
130
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
4
1.5k
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
141
7.6k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
From π to Pie charts
rasagy
0
220
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
410
The agentic SEO stack - context over prompts
schlessera
0
830
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Speed Design
sergeychernyshev
33
1.9k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
590
Between Models and Reality
mayunak
4
360
The SEO Collaboration Effect
kristinabergwall1
1
490
GraphQLとの向き合い方2022年版
quramy
50
15k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
620
Transcript
GitLab CI x Docker ΄φφϮ Japanese: @zyunnosuke English: @morizyune Roppongirb
#2
͠ڹ抑ΞҘ • morizyun(ϯϷυϲЀ);͚͜ݷڹͽϚϐϕͽ΅ၚ 㵕ͭͼ͚Δͯ • ̿ᯌ;ဴ;Ruby;Rails;̀ͼϣϺνΨ䨗͚ͼ ͚Δͯ
֟抨ͽͯ͢... • ͷΕͩ΄ϤϹωЀ΅ md2key ͽ֢ΠΔͭ ͵̶@k0kubun ͫΩ̵͘Π͢;͚ͪͬ͜ΔͯѺ
About GitLab • GitHubμϺЄЀ̶̶̶̵͞GitHubͽ͚͚ͮΙΩ • ͳ΄᭗Πͽͯ͢… • Ӯ΄Ӿ΅ᐒٖϚϐϕϼЄμ΄ϊЄφᓕቘΨ(ry • Community
EditionΟ僻ාͽςЄϝفΟΡ • ͿΩͿΩෛ䱛ᚆ᭄͢ے=> GitLab CI + Dockerڥ
About GitLab • GitHubμϺЄЀ̶̶̶̵͞GitHubͽ͚͚ͮΙΩ • ͳ΄᭗Πͽͯ͢… • Ӯ΄Ӿ΅ᐒٖϚϐϕϼЄμ΄ϊЄφᓕቘΨ(ry • Community
EditionΟ僻ාͽςЄϝفΟΡ • ͿΩͿΩෛ䱛ᚆ᭄͢ے=> GitLab CI + Dockerڥ
䱛ᚆ奧Օ: Issue Management • θЀϝЀ୵ୗ΄όφμᓕቘ (GitHub΄ProjectΞ͡ϷϷЄφ͡͵)
䱛ᚆ奧Օ: Snippet • Gist ϶αμφϘϧϐϕϑЄϸ
䱛ᚆ奧Օ: GitLab CI (氂) • GitLab ΄䱛ᚆ΄Ӟ᮱;ͭͼCI΄䱛ᚆ͘͢Ρ (GitLab 8.x͡Ο)
䱛ᚆ奧Օ: GitLab CI (氂) • GitLab ΄Ӿͽ CI / CD
͢ͽͣΡ
ͿΩίЄκϓμώϰҘ • GitLab ;΅㳨 Runner Ψ㳨αЀφϕЄϸ • Docker Container Ψ墋㶨㵕͡ͱΡ
ͿΩίЄκϓμώϰҘ • GitLab ;΅㳨 Runner Ψ㳨αЀφϕЄϸ • Docker Container Ψ墋㶨㵕͡ͱΡ
Mac ͽiOS΄ϠϸϖΘݢᚆ
ͽΘRunner΄installᶎׯͮΙҘ • GitLabςЄϝURL;TokenΨਧͯΡͶͧ # Install Docker $ curl -sSL https://get.docker.com/
| sh # Install GitLab CI runner $ curl -L https://packages.gitlab.com/install/repositories/ runner/gitlab-ci-multi-runner/script.deb.sh | sudo bash $ sudo apt-get install gitlab-ci-multi-runner # Register the runner to GitLab $ sudo gitlab-ci-multi-runner register # => Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com ) # => Please enter the gitlab-ci token for this runner DockerπϫЀϖΨ ͺ͡͞ΡΞͯ͜Ρ Docker CI Runner ΨαЀφϕЄϸ GitLab ςЄϝ;Token ΨਧͯΡͶͧ https://gitlab.com/gitlab-org/gitlab-ci-multi-runner
ͩͩͽ΅ֺ;ͭͼ... (1) git push (2) ϓφϕ䋚ᤈ (4) Deploy (3) Build
Run RSpec • Travis CI;͡΄Ξ͜ .gitlab-ci.yaml ͽ戔ਧ image: ruby:2.3 services:
- "postgres:latest" - "redis:latest" variables: RAILS_ENV: test stages: - test rspec: stage: test script: - 'bundle install --path vendor/bundle’ - 'bundle exec rake db:create' - 'bundle exec rake db:migrate' - 'bundle exec rspec --format=documentation spec' πϫЀϖΨ䋚ᤈͯΡDocker αϮЄυ PostgresͿϓφϕͽֵ͜DockerΘ 厏ह䄜හ(ኮᶎ͡Ο戔ਧݢᚆ) ϓφϕ΄ಋ殼Ψ懿ᬿ
Build Docker image • Docker αϮЄυΨ֢Ρֺ(.gitlab-ci.yaml) stages: - build build_docker_image_for_test:
stage: build image: docker:1.10git script: - docker login -u="$DOCKER_USERNAME" - p="$DOCKER_PASSWORD" - docker build -t $DOCKER_IMAGE . - docker push $DOCKER_IMAGE only: master Docker ΄αϮЄυΨbuild masterϫЄυͭ͵Ο ᛔ㵕ϺЄϸίγϕ
Deploy docker image stages: - build deploy_to_production: tags: [docker] stage:
deploy environment: production script: - bash ./rollout.sh $DOCKER_IMAGE when: manual Docker ΄αϮЄυΨDeploy masterϫЄυͭ͵Ο ᛔ㵕ϺЄϸίγϕ
Tips
䶅ࢧ bundle install ΅昼͚ͥҘ • ਧ΄ path ΨκϰϐτϲͽͣΡ • bundle
install --path vendor/bundle ΄ςЀϤϸ: cache: key: “${CI_PROJECT_PATH}" untracked: true paths: - vendor/bundle
build 奾ຎ΄ϢήαϸΨכਂ • artifacts 戔ਧͽᇙਧ ϢήαϸΚϢζϸύΨ Ϡϸϖ奄՞ͧͼכਂͽͣΡ pdf: script: xelatex
mycvtex artifacts: paths: - mycvpdf
ψκϲί厏ह䄜හ΅Ҙ • ϤϺυδμϕ Master/Owner(䰱ᴴ) Ͷͧ͢ίμψφ ͽ ͣΡ Secret Variables ;
͚͜戔ਧ͘͢ΠΔͯ
docker compose΄ਧ嬝Ψֵ͚͵͚ • Docker-in-DockerͽΚΔͯ(托ͭͥ΅͚ͽͯw) image: docker:latest services: - docker:dind build:
stage: build script: - docker build -t mydockerimage . - docker run mydockerimage /scripttoruntests https://docs.gitlab.com/ce/ci/docker/using_docker_build.html
ϺЄθϸͽ Runner Ψ㵕ͭ͡͵͚ • ϺЄθϸ runner ΨύγЀϺЄϖͭͼ䋚ᤈ $ wget https://gitlab-ci-multi-runner-
downloads.s3.amazonaws.com/master/binaries/ gitlab-ci-multi-runner-darwin-amd64 $ chmod +x gitlab-ci-multi-runner-darwin-amd64 $ gitlab-ci-multi-runner-darwin-amd64 exec test https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/master/docs/ install/bleeding-edge.md
.gitlab-ci.yaml΄LintϑЄϸΘ͘Ρ • 䨗͚͵ YAML Ϣήαϸ΄ဩ͢ྋ͚ͭ͡Ψ ώδϐμͯΡϑЄϸ
GitLab.com • μ϶γϖ厏हͽ׀ͫͼ͚ΡGitLab (https://about.gitlab.com/) • public, private ϷϪυϕϷΘ僻ාͽ׀ • GitLab
CI ΄ Runner Θ Digital Ocean ͢僻ාͽ ׀
Mac ͽGitLab手ͭͼΕΡ • Docker for Mac فͼ̵զӥ΄πϫЀϖΨ䋚ᤈ ͯΡͶͧ $ wget
https://raw.githubusercontent.com/sameersbn/ docker-gitlab/master/docker-compose.yml # http://qiita.com/kkanazaw/items/ 160469245fb270b1bdfd mountض΄pathΨץྋ $ docker-compose up
Happy Hacking!
݇ᘍ揾ා • GitLab CI΄奧Օ • https://about.gitlab.com/gitlab-ci/ • https://about.gitlab.com/2016/10/17/gitlab-ci-oohlala/ • https://tech.drecom.co.jp/easy-ci-development-using-gitlab-ci/
• Rails ͽ΄䌙فಋ殼 • https://www.stefanwienert.de/blog/2015/11/07/gitlab-ci-with-docker- starting-guide/ • Jenkins;΄晅͚ • http://qiita.com/namutaka/items/5114e9d9faf953bef6a4 • Heroku Ύ΄ Docker αϮЄυ΄ push ಋ殼 • https://blog.codeship.com/deploying-docker-rails-app/