狠狠撸

狠狠撸Share a Scribd company logo
NATIVE EXTENSION
のビルド
どうしてますか?
(改訂版)
kawasaki.rb #37 @ 20160623
ぺけみさお
発表者紹介
ぺけみさお
プログラマ
http://www.xmisao.com/
一言で言うと
辛い
具体的な辛み
OSやディストリビューションによってビルドに必要な
パッケージが異なる。
最近は、Dockerなどで、Alpine Linux(以下Alpine)など
の使い慣れないOSを使用する機会もある。
nokogiriはとても良いライブラリだけれ
ど、nokogiriのビルドで、いったい何人の初心者
Rubyistが心を挫かれたことだろう…。
理想
あらゆるOSで動くこんな感じのsome-magical-
commandが作りたい。
以下はnokogiriをインストールする場合。
#?nokogiriのgem?installに必要なものが全部入る
some?magical?command?nokogiri
#?nokogiriがすんなり入る
gem?install?nokogiri
とはいえ…
さすがにどんなGEMも
ビルドできるようにする
マジカルなものは作れない
妥協したアプローチ
Linuxのディストリビューションで、gemのバイナリが提
供されていれば、そのバイナリをビルドするための情報
が何らかの形で取得できるので、それを手がかりに依存
パッケージを見つける。
時間に限りがあるので
とりあえずALPINEを
対象に试作してみる
础尝笔滨狈贰の调査と検証
调査
APKBUILD
Alpineで、実行時?ビルド時のパッケージの依存関係
などの情報が書かれたファイル。
このファイル中のmakedependsにビルドに必要なパ
ッケージが指定されている。
ALPINEのGITリポジトリ
APKBUILDは以下のaportsというgitリポジトリで管理
されている。
また で直接見るこ
とも可能。
http://git.alpinelinux.org/cgit/aports/
git?clone?git://git.alpinelinux.org/aports
APORTSのブランチ構成
各バージョン毎にブランチが切られている。
(以下は抜粋)
特定のバージョンのAPKBUILDが入手可能。
2.4?stable
2.5?stable
2.6?stable
2.7?stable
3.0?stable
3.1?stable
3.2?stable
3.3?stable
3.4?stable
APKBUILDファイルのパス
Alpineのnokogiriのパッケージ
ruby-nokogiriの場合。
unmaintained/ruby?nokogiri/APKBUILD
unmaintainedという単語が
Rubyistの不安を掻き立てる…。
APKBUILDの確認
ruby-nokogiriのAPKBUILDを確認する。この中で興
味があるのはmakedependsのみ。
ruby-dev, libxml2-dev, libxslt-devパッケージ
が必要とわかる。
#?Contributor:?Fabian?Affolter?<fabian@affolter?engineering.ch>
#?Maintainer:?Fabian?Affolter?<fabian@affolter?engineering.ch>
_gemname=nokogiri
pkgname=ruby?$_gemname
pkgver=1.6.7.2
pkgrel=1
pkgdesc="An?HTML,?XML,?SAX,?and?Reader?parser"
url="http://nokogiri.org/"
arch="all"
license="MIT"
depends="ruby?ruby?mini_portile2"
depends_dev=""
makedepends="ruby?dev?libxml2?dev?libxslt?dev"
install=""
subpackages=""
source="http://gems.rubyforge.org/gems/$_gemname?$pkgver.gem"
検証
事前準備
依存関係にないが、Alpineの場合、
以下のパッケージはgemのビルドに必須…無念。
apk?add?ruby?build?base
(*) rubyはgemコマンドも含む。
build-baseはgccなどビルドに必須のツールを含む。
パッケージのインストール
apk?add???no?cache?ruby?dev?libxml2?dev?libxslt?dev
実行
gem?install?nokogiri
結果
Building?native?extensions.??This?could?take?a?while...
Successfully?installed?nokogiri?1.6.8
ERROR:??While?executing?gem?...?(Gem::DocumentError)
????RDoc?is?not?installed:?cannot?load?such?file????rdoc/rdoc
世知辛い。
Alpineではrdocなどが別パッケージ。
gem installには--no-riおよび--no-docオプシ
ョンの指定が必要。
再実行
gem?install???no?ri???no?doc?nokogiri
結果
Building?native?extensions.??This?could?take?a?while...
Successfully?installed?nokogiri?1.6.8
1?gem?installed
成功!
ちょっと整理
ALPINEでGEMをビルドする
gem名 ->
alpineパッケージ名 ->
alipneパッケージのAPKBUILD(makedepends) ->
gem installに必要なパッケージ名
他のOSに一般化
gem名 ->
OSのパッケージ名 ->
OSのパッケージのビルド用定義 ->
gem installに必要なパッケージ名
试作
TIROFINALEコマンド
https://github.com/xmisao/tirofinale
(*)現在のバージョン0.1系は试作。実装は雑
で、nokogiriくらいしか動かない他、Alpine 3.4のみで
動作する。
#!/usr/bin/env?ruby
require?'open?uri'
gem_name?=?ARGV[0]
alpine_version?=?"3.4?stable"
apkbuild_url?=?"http://git.alpinelinux.org/cgit/aports/plain/unmaintained/
apkbuild?=?open(apkbuild_url){|f|?f.read}
makedepends?=?apkbuild.match(/^makedepends="(.*?)"/).to_a[1].strip.
print?makedepends.join('?')
TIROFINALEのインストール
gem?install?tirofinale
TIROFINALEコマンドの使用法
入力
コマンドライン引数にgem名を指定する。
tirofinale?nokogiri
出力
gemをビルドするためのAlpineのパッケージ名がスペー
ス区切りで返る。
ruby?dev?libxml2?dev?libxslt?devy
(*)実際の出力に末尾の改行は入らない
デモ
NOKOGIRIのサンプルプログラム
以下サンプルをAlpineで動かしたいとする。
https://github.com/sparklemotion/nokogiri
#!?/usr/bin/env?ruby
require?'nokogiri'
require?'open?uri'
#?Fetch?and?parse?HTML?document
doc?=?Nokogiri::HTML(open('http://www.nokogiri.org/tutorials/installing_no
puts?"###?Search?for?nodes?by?css"
doc.css('nav?ul.menu?li?a',?'article?h2').each?do?|link|
??puts?link.content
end
puts?"###?Search?for?nodes?by?xpath"
doc.xpath('//nav//ul//li/a',?'//article//h2').each?do?|link|
??puts?link.content
end
DOCKERFILE
サンプルが動作する
Dockerイメージを作成することにする。
FROM?alpine:3.4
MAINTAINER?xmisao
RUN?apk???no?cache?add?ruby?build?base
RUN?gem?install???no?ri???no?doc?tirofinale
#?ここがポイント
RUN?apk???no?cache?add?`tirofinale?nokogiri`
RUN?gem?install???no?ri???no?doc?nokogiri
COPY?sample.rb?/root/sample.rb
CMD?ruby?/root/sample.rb
実行!
docker?build??t?tirofinale?demo?.
docker?run??it???rm?tirofinale?demo
結果!
###?Search?for?nodes?by?css
Docs
GitHub
Installation
Tutorials
Getting?Help
以下略
ちゃんと動作しました!
実用化に向けての課題
gemが依存するgemをインストールできるように、自
力でgemの依存関係をたどる必要あり。
APKBUILDファイルは変数のようなものが使えるの
で、正しくビルドするには構文解析が必要。
他のOSの対応 ... 少なくともDebianはapt-get build-dep
があるのでイケそう。他のディストリビューションと
MacやWindowsはどうする?
そもそもOSでバイナリパッケージが提供されない場合
にどうするか。何らかのフォローが必要。
OSやgemのバージョンの相互の関係性など。このあた
りの組み合わせは、CI的な方法でビルド可能なことを
検証して共有したい。
まとめ
APKBUILDを手がかりに、native extensionのgemをビル
ド可能にする方法を、tirofinaleを试作して検証した。
tirofinaleは、Rubyのnative extensionに対する最後の一
射として、今後実用的に使用できるよう開発したい。
ご清聴
ありがとう
ございました

More Related Content

What's hot (20)

僕の考えた最强の开発环境(笑)
僕の考えた最强の开発环境(笑)僕の考えた最强の开発环境(笑)
僕の考えた最强の开発环境(笑)
Yuta Nakano
?
骋谤耻苍迟入门
骋谤耻苍迟入门骋谤耻苍迟入门
骋谤耻苍迟入门
Tsuyoshi Maeda
?
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
hiro345
?
サーバサイド狈辞诲别の使い道
サーバサイド狈辞诲别の使い道サーバサイド狈辞诲别の使い道
サーバサイド狈辞诲别の使い道
pospome
?
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみるづや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
zuya
?
谁でも出来るローカル开発环境の作り方
谁でも出来るローカル开発环境の作り方谁でも出来るローカル开発环境の作り方
谁でも出来るローカル开発环境の作り方
666oh666
?
自宅サーバ仮想化
自宅サーバ仮想化自宅サーバ仮想化
自宅サーバ仮想化
anubis_369
?
仮想マシンを使った开発环境の简単共有方法
仮想マシンを使った开発环境の简単共有方法 仮想マシンを使った开発环境の简単共有方法
仮想マシンを使った开発环境の简単共有方法
Hideo Takahashi
?
齿别苍と锄蹿蝉で作る家庭内痴顿滨サーバ
齿别苍と锄蹿蝉で作る家庭内痴顿滨サーバ齿别苍と锄蹿蝉で作る家庭内痴顿滨サーバ
齿别苍と锄蹿蝉で作る家庭内痴顿滨サーバ
zgock
?
Node.js で Web アプリ開発
Node.js で Web アプリ開発Node.js で Web アプリ開発
Node.js で Web アプリ開発
Tatsumi Naganuma
?
Cpi mega mix
Cpi mega mixCpi mega mix
Cpi mega mix
Ryuji Egashira
?
贵颈谤别产补蝉别と狈耻虫迟で尝笔を作って见た
贵颈谤别产补蝉别と狈耻虫迟で尝笔を作って见た贵颈谤别产补蝉别と狈耻虫迟で尝笔を作って见た
贵颈谤别产补蝉别と狈耻虫迟で尝笔を作って见た
Kenjiro Kubota
?
Fabricによるcloud stackインストール自動化
Fabricによるcloud stackインストール自動化Fabricによるcloud stackインストール自動化
Fabricによるcloud stackインストール自動化
hiroyuki nakajima
?
Node.js Tutorial at Hiroshima
Node.js Tutorial at HiroshimaNode.js Tutorial at Hiroshima
Node.js Tutorial at Hiroshima
Yoshihiro Iwanaga
?
搁别补肠迟と产补产别濒て?简易タスク管理ツール作ってみた
搁别补肠迟と产补产别濒て?简易タスク管理ツール作ってみた搁别补肠迟と产补产别濒て?简易タスク管理ツール作ってみた
搁别补肠迟と产补产别濒て?简易タスク管理ツール作ってみた
Tsuyoshi Maeda
?
20180925 docker ecs_fargate
20180925 docker ecs_fargate20180925 docker ecs_fargate
20180925 docker ecs_fargate
Hisayuki Mori
?
Node.js基礎の基礎 - Miyazaki.js vol.2
Node.js基礎の基礎 - Miyazaki.js vol.2Node.js基礎の基礎 - Miyazaki.js vol.2
Node.js基礎の基礎 - Miyazaki.js vol.2
Nobuhiro Nakashima
?
Azure Bastion の紹介
Azure Bastion の紹介Azure Bastion の紹介
Azure Bastion の紹介
Masakazu Kishima
?
别濒颈虫颈谤を使ったゲームサーバ
别濒颈虫颈谤を使ったゲームサーバ别濒颈虫颈谤を使ったゲームサーバ
别濒颈虫颈谤を使ったゲームサーバ
Hidetaka Kojo
?
僕の考えた最强の开発环境(笑)
僕の考えた最强の开発环境(笑)僕の考えた最强の开発环境(笑)
僕の考えた最强の开発环境(笑)
Yuta Nakano
?
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
hiro345
?
サーバサイド狈辞诲别の使い道
サーバサイド狈辞诲别の使い道サーバサイド狈辞诲别の使い道
サーバサイド狈辞诲别の使い道
pospome
?
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみるづや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
zuya
?
谁でも出来るローカル开発环境の作り方
谁でも出来るローカル开発环境の作り方谁でも出来るローカル开発环境の作り方
谁でも出来るローカル开発环境の作り方
666oh666
?
自宅サーバ仮想化
自宅サーバ仮想化自宅サーバ仮想化
自宅サーバ仮想化
anubis_369
?
仮想マシンを使った开発环境の简単共有方法
仮想マシンを使った开発环境の简単共有方法 仮想マシンを使った开発环境の简単共有方法
仮想マシンを使った开発环境の简単共有方法
Hideo Takahashi
?
齿别苍と锄蹿蝉で作る家庭内痴顿滨サーバ
齿别苍と锄蹿蝉で作る家庭内痴顿滨サーバ齿别苍と锄蹿蝉で作る家庭内痴顿滨サーバ
齿别苍と锄蹿蝉で作る家庭内痴顿滨サーバ
zgock
?
Node.js で Web アプリ開発
Node.js で Web アプリ開発Node.js で Web アプリ開発
Node.js で Web アプリ開発
Tatsumi Naganuma
?
贵颈谤别产补蝉别と狈耻虫迟で尝笔を作って见た
贵颈谤别产补蝉别と狈耻虫迟で尝笔を作って见た贵颈谤别产补蝉别と狈耻虫迟で尝笔を作って见た
贵颈谤别产补蝉别と狈耻虫迟で尝笔を作って见た
Kenjiro Kubota
?
Fabricによるcloud stackインストール自動化
Fabricによるcloud stackインストール自動化Fabricによるcloud stackインストール自動化
Fabricによるcloud stackインストール自動化
hiroyuki nakajima
?
搁别补肠迟と产补产别濒て?简易タスク管理ツール作ってみた
搁别补肠迟と产补产别濒て?简易タスク管理ツール作ってみた搁别补肠迟と产补产别濒て?简易タスク管理ツール作ってみた
搁别补肠迟と产补产别濒て?简易タスク管理ツール作ってみた
Tsuyoshi Maeda
?
20180925 docker ecs_fargate
20180925 docker ecs_fargate20180925 docker ecs_fargate
20180925 docker ecs_fargate
Hisayuki Mori
?
Node.js基礎の基礎 - Miyazaki.js vol.2
Node.js基礎の基礎 - Miyazaki.js vol.2Node.js基礎の基礎 - Miyazaki.js vol.2
Node.js基礎の基礎 - Miyazaki.js vol.2
Nobuhiro Nakashima
?
别濒颈虫颈谤を使ったゲームサーバ
别濒颈虫颈谤を使ったゲームサーバ别濒颈虫颈谤を使ったゲームサーバ
别濒颈虫颈谤を使ったゲームサーバ
Hidetaka Kojo
?

Similar to Native Extensionのビルドどうしてますか? (20)

Docker と ECS と WebSocket で最強のマルチプレイ?ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ?ゲームサーバを構築Docker と ECS と WebSocket で最強のマルチプレイ?ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ?ゲームサーバを構築
gree_tech
?
顿辞肠办别谤を使ってみよう
顿辞肠办别谤を使ってみよう顿辞肠办别谤を使ってみよう
顿辞肠办别谤を使ってみよう
Ryo Adachi
?
ハ?フォーマンス计测颁颈サーヒ?スを作って得た知见を共有したい
ハ?フォーマンス计测颁颈サーヒ?スを作って得た知见を共有したいハ?フォーマンス计测颁颈サーヒ?スを作って得た知见を共有したい
ハ?フォーマンス计测颁颈サーヒ?スを作って得た知见を共有したい
zaru sakuraba
?
NVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 LinuxNVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 Linux
Tomoki SHISHIKURA
?
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Masahiro Nagano
?
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Masahito Zembutsu
?
[CNDT] 最近のDockerの新機能
[CNDT] 最近のDockerの新機能[CNDT] 最近のDockerの新機能
[CNDT] 最近のDockerの新機能
Akihiro Suda
?
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Kazuyuki Mori
?
静的サイトどこにする?
静的サイトどこにする?静的サイトどこにする?
静的サイトどこにする?
ogawatti
?
明日からはし?められる Docker + さくらvpsを使った開発環境構築
明日からはし?められる Docker + さくらvpsを使った開発環境構築明日からはし?められる Docker + さくらvpsを使った開発環境構築
明日からはし?められる Docker + さくらvpsを使った開発環境構築
MILI-LLC
?
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
Masahito Zembutsu
?
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集
Wataru NOGUCHI
?
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
Izumi Tsutsui
?
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けようDjango ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Takayuki Shimizukawa
?
カジュアルに本番データを開発環境に入れる #mysqlcasual
カジュアルに本番データを開発環境に入れる #mysqlcasualカジュアルに本番データを開発環境に入れる #mysqlcasual
カジュアルに本番データを開発環境に入れる #mysqlcasual
Kazuhiro Oinuma
?
ソフトウェア工学2023 06 コンテナ仮想化
ソフトウェア工学2023 06 コンテナ仮想化ソフトウェア工学2023 06 コンテナ仮想化
ソフトウェア工学2023 06 コンテナ仮想化
Toru Tamaki
?
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
yaegashi
?
Newcomer2020 Docker研修
Newcomer2020 Docker研修Newcomer2020 Docker研修
Newcomer2020 Docker研修
Suguru Yazawa
?
Docker と ECS と WebSocket で最強のマルチプレイ?ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ?ゲームサーバを構築Docker と ECS と WebSocket で最強のマルチプレイ?ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ?ゲームサーバを構築
gree_tech
?
顿辞肠办别谤を使ってみよう
顿辞肠办别谤を使ってみよう顿辞肠办别谤を使ってみよう
顿辞肠办别谤を使ってみよう
Ryo Adachi
?
ハ?フォーマンス计测颁颈サーヒ?スを作って得た知见を共有したい
ハ?フォーマンス计测颁颈サーヒ?スを作って得た知见を共有したいハ?フォーマンス计测颁颈サーヒ?スを作って得た知见を共有したい
ハ?フォーマンス计测颁颈サーヒ?スを作って得た知见を共有したい
zaru sakuraba
?
NVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 LinuxNVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 Linux
Tomoki SHISHIKURA
?
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Masahiro Nagano
?
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Masahito Zembutsu
?
[CNDT] 最近のDockerの新機能
[CNDT] 最近のDockerの新機能[CNDT] 最近のDockerの新機能
[CNDT] 最近のDockerの新機能
Akihiro Suda
?
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Kazuyuki Mori
?
静的サイトどこにする?
静的サイトどこにする?静的サイトどこにする?
静的サイトどこにする?
ogawatti
?
明日からはし?められる Docker + さくらvpsを使った開発環境構築
明日からはし?められる Docker + さくらvpsを使った開発環境構築明日からはし?められる Docker + さくらvpsを使った開発環境構築
明日からはし?められる Docker + さくらvpsを使った開発環境構築
MILI-LLC
?
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
Masahito Zembutsu
?
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集
Wataru NOGUCHI
?
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
Izumi Tsutsui
?
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けようDjango ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Takayuki Shimizukawa
?
カジュアルに本番データを開発環境に入れる #mysqlcasual
カジュアルに本番データを開発環境に入れる #mysqlcasualカジュアルに本番データを開発環境に入れる #mysqlcasual
カジュアルに本番データを開発環境に入れる #mysqlcasual
Kazuhiro Oinuma
?
ソフトウェア工学2023 06 コンテナ仮想化
ソフトウェア工学2023 06 コンテナ仮想化ソフトウェア工学2023 06 コンテナ仮想化
ソフトウェア工学2023 06 コンテナ仮想化
Toru Tamaki
?
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
yaegashi
?
Newcomer2020 Docker研修
Newcomer2020 Docker研修Newcomer2020 Docker研修
Newcomer2020 Docker研修
Suguru Yazawa
?

More from Misao X (7)

BestGems.org 2018年の進化
BestGems.org 2018年の進化BestGems.org 2018年の進化
BestGems.org 2018年の進化
Misao X
?
Rubyからg rpcでdocker化したkuromojiを使った話
Rubyからg rpcでdocker化したkuromojiを使った話Rubyからg rpcでdocker化したkuromojiを使った話
Rubyからg rpcでdocker化したkuromojiを使った話
Misao X
?
搁耻产测で骋鲍滨アプリケーションを书く
搁耻产测で骋鲍滨アプリケーションを书く搁耻产测で骋鲍滨アプリケーションを书く
搁耻产测で骋鲍滨アプリケーションを书く
Misao X
?
極貧Webサービス運用 kawasaki.rb #044
極貧Webサービス運用 kawasaki.rb #044極貧Webサービス運用 kawasaki.rb #044
極貧Webサービス運用 kawasaki.rb #044
Misao X
?
しょぼいカレンダーからアニメデータベースを作る
しょぼいカレンダーからアニメデータベースを作るしょぼいカレンダーからアニメデータベースを作る
しょぼいカレンダーからアニメデータベースを作る
Misao X
?
BestGems.org -RubyGemsランキングサイトのご紹介-
BestGems.org -RubyGemsランキングサイトのご紹介-BestGems.org -RubyGemsランキングサイトのご紹介-
BestGems.org -RubyGemsランキングサイトのご紹介-
Misao X
?
痴颈尘と搁耻产测のアツい関係
痴颈尘と搁耻产测のアツい関係痴颈尘と搁耻产测のアツい関係
痴颈尘と搁耻产测のアツい関係
Misao X
?
BestGems.org 2018年の進化
BestGems.org 2018年の進化BestGems.org 2018年の進化
BestGems.org 2018年の進化
Misao X
?
Rubyからg rpcでdocker化したkuromojiを使った話
Rubyからg rpcでdocker化したkuromojiを使った話Rubyからg rpcでdocker化したkuromojiを使った話
Rubyからg rpcでdocker化したkuromojiを使った話
Misao X
?
搁耻产测で骋鲍滨アプリケーションを书く
搁耻产测で骋鲍滨アプリケーションを书く搁耻产测で骋鲍滨アプリケーションを书く
搁耻产测で骋鲍滨アプリケーションを书く
Misao X
?
極貧Webサービス運用 kawasaki.rb #044
極貧Webサービス運用 kawasaki.rb #044極貧Webサービス運用 kawasaki.rb #044
極貧Webサービス運用 kawasaki.rb #044
Misao X
?
しょぼいカレンダーからアニメデータベースを作る
しょぼいカレンダーからアニメデータベースを作るしょぼいカレンダーからアニメデータベースを作る
しょぼいカレンダーからアニメデータベースを作る
Misao X
?
BestGems.org -RubyGemsランキングサイトのご紹介-
BestGems.org -RubyGemsランキングサイトのご紹介-BestGems.org -RubyGemsランキングサイトのご紹介-
BestGems.org -RubyGemsランキングサイトのご紹介-
Misao X
?
痴颈尘と搁耻产测のアツい関係
痴颈尘と搁耻产测のアツい関係痴颈尘と搁耻产测のアツい関係
痴颈尘と搁耻产测のアツい関係
Misao X
?

Native Extensionのビルドどうしてますか?