Slide 1

Slide 1 text

PackerでぱかっとDockerイメージを ビルドする Docker Meetup Kansai #4 寺岡 佑樹

Slide 2

Slide 2 text

はじめに ・LTなので気軽にお聞きくださいー ・本資料は後程公開します ・資料公開したらTwitterでハッシュタグ付きでつぶやきます

Slide 3

Slide 3 text

自己紹介 resource “my_profile” “nezumisannn” { name = “Yuki.Teraoka” nickname = “ねずみさん家。” company = “beyond” job = “Site Reliability Engineer” twitter = “@yktr_sre” skills = [“terraform”,”packer”] }

Slide 4

Slide 4 text

Packerとは

Slide 5

Slide 5 text

Packerとは ・マシンイメージの自動生成と管理を行うツール ・HashiCorpが開発、Golangで記述されている

Slide 6

Slide 6 text

Packerで出来ること

Slide 7

Slide 7 text

Packerで出来ること ・Dockerイメージを含めた各種マシンイメージの自動生成 ・マシンイメージの構成をテンプレートとしてJsonで記述できる ・その他、AWSのAMIやVMwareにも対応

Slide 8

Slide 8 text

やってみよう

Slide 9

Slide 9 text

やってみよう ・dockerイメージをビルドしてElastic Container RegistryにPushする ・Packer用テンプレートの作成 ・テンプレートを指定してコマンドラインからPackerを実行

Slide 10

Slide 10 text

テンプレートの作成 { "variables" : { -> variables setting here }, "builders": [ -> builders settting here ], "provisioners" : [ -> provisioners setting here ], "post-processors" : [ -> post-processors setting here ] }

Slide 11

Slide 11 text

テンプレートの作成 ・variables ・テンプレートで利用する変数を指定 ・builders ・ビルドするイメージのタイプを指定 ・provisioners ・イメージに対してのプロビジョニング(Ansibleが利用できる) ・post-processors ・ビルドした結果から新しいアーティファクトを作成

Slide 12

Slide 12 text

variables "variables": { "ecr_registry_url": "XXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com", "ecr_repository": "XXXXXXXXXXXX.dkr.ecr.ap-northeast-1.amazonaws.com/example-repo" "ecr_login_password": "{{env `ECR_LOGIN_PASSWORD`}}" },

Slide 13

Slide 13 text

builders "builders": [ { "type": "docker", "image": "alpine:latest", "commit": true, } ],

Slide 14

Slide 14 text

provisioners "provisioners": [ { "type": "ansible", "user": "root", "playbook_file": "./ansible/operation.yml" } ],

Slide 15

Slide 15 text

post-processors "post-processors": [ [ { "type": "docker-tag", "repository": "{{user `ecr_repository`}}", "tag": "latest" }, { "type": "docker-push", "ecr_login": true, "login_username": "AWS" "login_password": "{{user `ecr_login_password`}}" "login_server": "{{user `ecr_registry_url`}}" } ] ]

Slide 16

Slide 16 text

実行 ・コマンドラインからPackerを実行する ・packer build /path/to/template.json

Slide 17

Slide 17 text

まとめ ・DockerイメージのビルドはPackerを利用しよう ・皆様のdocker利用のお役に立てれば幸いです

Slide 18

Slide 18 text

END