SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
真 drone 入門
0
自己紹介
自己紹介
∙ Yutaka Matsubara
∙ Abby CTO
∙ twiter: @mopemope
∙ github: @mopemope
Abby 社員募集中です
1
宣伝
CoreOS Meetup で喋ります
CoreOS Meetup Tokyo #1
http://coreos-meetup-tokyo.connpass.com/event/12596/
2
drone.io
3
drone.io とは
∙ Brad Rydzewski が開発・運用
∙ Docker ベースの CI サービス
∙ github, bitbucket などに対応
∙ OSS バージョンが存在
今回は OSS の drone について話します
4
drone
5
drone
OSS drone
基本は udzura さんの資料を見よ
http://www.slideshare.net/udzura/droneio
6
できないこと
OSS 版では以下ができない
∙ 成果物の管理 (Artifact)
∙ GUI での操作
7
本題
8
ドキュメントにあまり出てない話
9
インストール
10
インストール
drone 自体 dockerize されている
dockerize されているのでディストリビューションを問わない
$ git clone git@github.com:drone/drone.git && cd drone
$ sudo docker build -t drone/drone .
11
実行
設定はほぼ環境変数で可能
$ sudo docker run -d -v /home/ma2/drone:/var/lib/drone 
--net=host --name="drone" 
DRONE_DATABASE_DATASOURCE=/var/lib/drone/drone.sqlite 
-e DRONE_WORKER_NODES="tcp://0.0.0.0:2375" 
-e DRONE_BITBUCKET_CLIENT=XXXXXXXXXXXXXX 
-e DRONE_BITBUCKET_SECRET=XXXXXXXX drone/drone
VOLUME が /var/lib/drone になっているので注意
12
対応しているサービス
13
対応しているサービス
プライベートリポジトリも可能
∙ GitHub
∙ GitHub Enterprise
∙ Gitlab
∙ Gogs
∙ Bitbucket
特に Bitbucket はプライベートリポジトリ作り放題なので個人に
はもってこい
14
Image
15
docker image
author 指定なしだとオフィシャル
実体は bradrydzewski/xxxx
これらの Dockerfile も公開されている
image: go:1.2
カスタムイメージ
image: mopemope/gox:1.4
16
オフィシャルとカスタムの違い
オフィシャルは特別
オフィシャルは ubuntu 12.04 ベース
∙ 実行ユーザーが ubuntu
∙ HOME が /home/ubuntu
∙ リンクを解決するための proxy が入っている
∙ docker で link されているコンテナを localhost 経由で操作
17
コード
share/build/build.go
case strings.HasPrefix(b.Build.Image, "bradrydzewski/")
strings.HasPrefix(b.Build.Image, "drone/"):
dockerfile.WriteUser("ubuntu")
...
default:
dockerfile.WriteUser("root")
...
18
services
.drone.yml に書くデータベースなどもカスタマイズ可能
author/middleware:tag
services:
- mopemope/mysql:5.6
middleware 部がリンク名として使われる
19
Publish
20
publish
成果物の Publish 先
∙ S3
∙ Swift
∙ NPM
∙ PYPI
∙ Docker
∙ Dropbox
∙ Github
∙ Bintray
∙ Azure
ドキュメントに出てないものが幾つかある
21
dropbox
Dropbox Application を作成し、TOKEN をもらう
シェルとして展開されるので環境変数は展開される
env:
- TARGET=foo_$CI_BRANCH
...
publish:
dropbox:
access_token: $$DROPBOX_TOKEN
source: /bin/target.zip
target: /artifact/latest/$TARGET.zip
22
Deploy
23
deploy
成果物の Deploy 先
∙ CloudFoundry
∙ Git
∙ Heroku
∙ Deis
∙ Modulus
∙ Nodejitsu
∙ SSH
∙ Tsuru
∙ Bash
drone.io 参照
24
カスタマイズ
25
プラグインによるカスタマイズ
シェルコマンドを書き込むプラグイン
∙ publish
∙ deploy
go のコードとして展開
∙ notify
26
例
dropbox publish
cmd := "curl --upload-file %s -H "Authorization: Bearer 
%s" "https://api-content.dropbox.com/1/files_put/auto/%s?
f.WriteCmd(fmt.Sprintf(cmd, d.Source, d.AccessToken, d.Targ
27
0.4
28
.drone.yml
.drone.yml の構造が大きく変わる
build:
image: go:$$go_version
commands:
- env
...
compose:
redis:
image: redis
matrix:
go_version 29
matrix
指定したイメージごとにビルドを実行
∙ ディストリビューションを変えてのテスト
∙ 言語の別バージョンごとにビルド/テスト
∙ データベースのバージョンごとにビルド/テスト
bradrydzewski/drone で開発中
30
matrix
build:
image: go:$$go_version
matrix:
go_version
- 1.2
- 1.4
31
Q & A
32

Weitere ähnliche Inhalte

Was ist angesagt?

Ss systemdのwslディストロを作る kernelvm探検隊online part 3
Ss systemdのwslディストロを作る kernelvm探検隊online part 3Ss systemdのwslディストロを作る kernelvm探検隊online part 3
Ss systemdのwslディストロを作る kernelvm探検隊online part 3Takaya Saeki
 
dockerでImmutable InfrastructureなWordPressを考える
dockerでImmutable InfrastructureなWordPressを考えるdockerでImmutable InfrastructureなWordPressを考える
dockerでImmutable InfrastructureなWordPressを考えるGMOインターネット
 
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメTetsuyuki Kobayashi
 
DockerでJupyter使おうぜ
DockerでJupyter使おうぜDockerでJupyter使おうぜ
DockerでJupyter使おうぜSatoshi Yazawa
 
LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2Tomofumi Yagi
 
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013DQNEO
 
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築gree_tech
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入Yu Nobuoka
 
LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)Masataka Kondo
 
Wocker 秒速で WordPress 開発環境を構築する
Wocker 秒速で WordPress 開発環境を構築するWocker 秒速で WordPress 開発環境を構築する
Wocker 秒速で WordPress 開発環境を構築するKite Koga
 
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要Kazuyuki Mori
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについてMasahito Zembutsu
 
はじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & LinuxはじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & LinuxKazushi Kamegawa
 
LibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATELibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATETomofumi Yagi
 
LibreOfficeをWindows上でビルドする
LibreOfficeをWindows上でビルドするLibreOfficeをWindows上でビルドする
LibreOfficeをWindows上でビルドするTomofumi Yagi
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境Fumihito Yokoyama
 
一番簡単なWebSocketの試し方
一番簡単なWebSocketの試し方一番簡単なWebSocketの試し方
一番簡単なWebSocketの試し方Shunji Konishi
 
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0Masakazu Matsushita
 

Was ist angesagt? (20)

Ss systemdのwslディストロを作る kernelvm探検隊online part 3
Ss systemdのwslディストロを作る kernelvm探検隊online part 3Ss systemdのwslディストロを作る kernelvm探検隊online part 3
Ss systemdのwslディストロを作る kernelvm探検隊online part 3
 
Moby Project
Moby ProjectMoby Project
Moby Project
 
dockerでImmutable InfrastructureなWordPressを考える
dockerでImmutable InfrastructureなWordPressを考えるdockerでImmutable InfrastructureなWordPressを考える
dockerでImmutable InfrastructureなWordPressを考える
 
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ
 
DockerでJupyter使おうぜ
DockerでJupyter使おうぜDockerでJupyter使おうぜ
DockerでJupyter使おうぜ
 
LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2
 
やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013やさしいGitの内部構造 - yapcasia2013
やさしいGitの内部構造 - yapcasia2013
 
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)
 
Wocker 秒速で WordPress 開発環境を構築する
Wocker 秒速で WordPress 開発環境を構築するWocker 秒速で WordPress 開発環境を構築する
Wocker 秒速で WordPress 開発環境を構築する
 
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
 
はじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & LinuxはじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & Linux
 
LibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATELibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATE
 
LibreOfficeをWindows上でビルドする
LibreOfficeをWindows上でビルドするLibreOfficeをWindows上でビルドする
LibreOfficeをWindows上でビルドする
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
 
一番簡単なWebSocketの試し方
一番簡単なWebSocketの試し方一番簡単なWebSocketの試し方
一番簡単なWebSocketの試し方
 
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
 
20170124 linux basic_2
20170124 linux basic_220170124 linux basic_2
20170124 linux basic_2
 

Ähnlich wie 真Drone入門

Dockerで開発環境をデリバる
Dockerで開発環境をデリバるDockerで開発環境をデリバる
Dockerで開発環境をデリバるDaigou Harada
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Masahito Zembutsu
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-Saki Homma
 
Hotoの奇妙な挑戦 〜 Swiftクルセイダーズ 〜
Hotoの奇妙な挑戦 〜 Swiftクルセイダーズ 〜Hotoの奇妙な挑戦 〜 Swiftクルセイダーズ 〜
Hotoの奇妙な挑戦 〜 Swiftクルセイダーズ 〜Yuki Ishikawa
 
CoreOS OEM on NIFTY Cloud - CoreOS Meetup Tokyo #1 #coreosjp
CoreOS OEM on NIFTY Cloud - CoreOS Meetup Tokyo #1 #coreosjpCoreOS OEM on NIFTY Cloud - CoreOS Meetup Tokyo #1 #coreosjp
CoreOS OEM on NIFTY Cloud - CoreOS Meetup Tokyo #1 #coreosjp雄也 日下部
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較Akihiro Suda
 
[CNDT] 最近のDockerの新機能
[CNDT] 最近のDockerの新機能[CNDT] 最近のDockerの新機能
[CNDT] 最近のDockerの新機能Akihiro Suda
 
Moby Project (May 25, 2017, Tokyo)
Moby Project (May 25, 2017, Tokyo)Moby Project (May 25, 2017, Tokyo)
Moby Project (May 25, 2017, Tokyo)Akihiro Suda
 
Nitrous.IOを触ってみた~web IDE(クラウドIDE)について~
Nitrous.IOを触ってみた~web IDE(クラウドIDE)について~Nitrous.IOを触ってみた~web IDE(クラウドIDE)について~
Nitrous.IOを触ってみた~web IDE(クラウドIDE)について~Shin O
 
20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux20170527 inside .NET Core on Linux
20170527 inside .NET Core on LinuxTakayoshi Tanaka
 
Dockerを使ってみよう
Dockerを使ってみようDockerを使ってみよう
Dockerを使ってみようRyo Adachi
 
Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Masahito Zembutsu
 
Microsoft Copilot Studio.pdf
Microsoft Copilot Studio.pdfMicrosoft Copilot Studio.pdf
Microsoft Copilot Studio.pdfTomokazu Kizawa
 
boot2docker の format-me の話
boot2docker の format-me の話boot2docker の format-me の話
boot2docker の format-me の話Kazuhiro Nishiyama
 
Newcomer2020 Docker研修
Newcomer2020 Docker研修Newcomer2020 Docker研修
Newcomer2020 Docker研修Suguru Yazawa
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今Yuki Igarashi
 
Introduce Toaster (Toasterのご紹介)
Introduce Toaster (Toasterのご紹介)Introduce Toaster (Toasterのご紹介)
Introduce Toaster (Toasterのご紹介)Hiroshi Sakate
 

Ähnlich wie 真Drone入門 (20)

Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
Dockerで開発環境をデリバる
Dockerで開発環境をデリバるDockerで開発環境をデリバる
Dockerで開発環境をデリバる
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
 
Hotoの奇妙な挑戦 〜 Swiftクルセイダーズ 〜
Hotoの奇妙な挑戦 〜 Swiftクルセイダーズ 〜Hotoの奇妙な挑戦 〜 Swiftクルセイダーズ 〜
Hotoの奇妙な挑戦 〜 Swiftクルセイダーズ 〜
 
CoreOS OEM on NIFTY Cloud - CoreOS Meetup Tokyo #1 #coreosjp
CoreOS OEM on NIFTY Cloud - CoreOS Meetup Tokyo #1 #coreosjpCoreOS OEM on NIFTY Cloud - CoreOS Meetup Tokyo #1 #coreosjp
CoreOS OEM on NIFTY Cloud - CoreOS Meetup Tokyo #1 #coreosjp
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
[CNDT] 最近のDockerの新機能
[CNDT] 最近のDockerの新機能[CNDT] 最近のDockerの新機能
[CNDT] 最近のDockerの新機能
 
Docker入門
Docker入門Docker入門
Docker入門
 
SnapDishの事例
SnapDishの事例SnapDishの事例
SnapDishの事例
 
Moby Project (May 25, 2017, Tokyo)
Moby Project (May 25, 2017, Tokyo)Moby Project (May 25, 2017, Tokyo)
Moby Project (May 25, 2017, Tokyo)
 
Nitrous.IOを触ってみた~web IDE(クラウドIDE)について~
Nitrous.IOを触ってみた~web IDE(クラウドIDE)について~Nitrous.IOを触ってみた~web IDE(クラウドIDE)について~
Nitrous.IOを触ってみた~web IDE(クラウドIDE)について~
 
20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux
 
Dockerを使ってみよう
Dockerを使ってみようDockerを使ってみよう
Dockerを使ってみよう
 
Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理
 
Microsoft Copilot Studio.pdf
Microsoft Copilot Studio.pdfMicrosoft Copilot Studio.pdf
Microsoft Copilot Studio.pdf
 
boot2docker の format-me の話
boot2docker の format-me の話boot2docker の format-me の話
boot2docker の format-me の話
 
Newcomer2020 Docker研修
Newcomer2020 Docker研修Newcomer2020 Docker研修
Newcomer2020 Docker研修
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
 
Introduce Toaster (Toasterのご紹介)
Introduce Toaster (Toasterのご紹介)Introduce Toaster (Toasterのご紹介)
Introduce Toaster (Toasterのご紹介)
 

真Drone入門