20190823_DockerMeetupKansai__4.pdf

 20190823_DockerMeetupKansai__4.pdf

2e2c49f6f3fa33b8f5aad5841774c211?s=128

nezumisannn

August 23, 2019
Tweet

Transcript

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

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

  3. 自己紹介 resource “my_profile” “nezumisannn” { name = “Yuki.Teraoka” nickname =

    “ねずみさん家。” company = “beyond” job = “Site Reliability Engineer” twitter = “@yktr_sre” skills = [“terraform”,”packer”] }
  4. Packerとは

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

  6. Packerで出来ること

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

  8. やってみよう

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

  10. テンプレートの作成 { "variables" : { -> variables setting here },

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

  12. 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`}}"

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

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

    } ],
  15. 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`}}" } ] ]
  16. 実行 ・コマンドラインからPackerを実行する ・packer build /path/to/template.json

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

  18. END