kakakakakku blog

Weekly Tech Blog : Keep on Learning 👍

Docker

GitHub Actions と hadolint を組み合わせて Dockerfile の静的解析を自動化しよう!

GitHub Actions と hadolint (Haskell Dockerfile Linter) を組み合わせて,今まで雑に実装してきた Dockerfile の静的解析を自動化する環境を作った.できる限り Dockerfile Best Practices を意識していることもあり,警告はあまり多く出なかったけど,や…

Dockerfile に HEALTHCHECK を設定すると「ヘルスチェック機能」が使えるようになる

今回は Docker で使える「ヘルスチェック機能」を試す.Release Note を読むと,機能としては Docker 1.12 から使えるらしく,3年前からあったなんて...!仕組みとしては,Docker デーモンからコンテナに指定したコマンドを定期的に実行する. Dockerfile 構…

Docker Experimental Features を有効化すると使える docker build の --squash オプション

Docker コンテナを本番運用する場合,コンテナイメージのサイズをできる限り小さくすることを意識すると思う.具体的には「レイヤー」を意識することにより,Dockerfile に記述する RUN を減らしたり,一時ファイルを消す場合に同じ RUN で rm をする.最近…

さぁ!コンテナを設計しよう /「分散システムデザインパターン」を読んだ

4月に出版された「分散システムデザインパターン」を読んだ.サブタイトルに「コンテナを使ったスケーラブルなサービスの設計」とある通り,コンテナを設計/運用するときに,どのようなデザインパターンを知っておくと良いのか?という点を学べる内容になっ…

FaaS フレームワーク「OpenFaaS」を実践的に学べる公式ワークショップ

Docker Swarm と Kubernetes をサポートしている FaaS フレームワークとして「OpenFaaS」がある.CNCF Cloud Native Landscape を見ても Serverless カテゴリに入っている.OpenFaaS は前から気になっていたけど,今まで試したことがなく,最近 GitHub に Op…

Docker 公式のセキュリティ診断ツール「Docker Bench for Security」を試した

最近 Docker 関連のセキュリティツールを調査する機会があり,今回は「Docker Bench for Security」を試したログを残しておく.「Docker Bench for Security」は Docker から公式に提供されているセキュリティ診断ツールで,具体的には「CIS Docker Communit…

HTML の Lint ツール「htmllint」を CircleCI で実行する

HTML を実装しながら Lint を実行するため「htmllint」を使うことにした.類似ライブラリに「HTMLHint」もある. github.com htmllint と htmllint-cli 「htmllint」を CLI で実行する場合は「htmllint-cli」を使う. github.com 以下のように npm で htmlli…

依存パッケージを更新するサービス「Dependabot」で Dockerfile の更新をチェックする

Dependabot は依存パッケージの更新を定期的にチェックし,更新があった場合にプルリクエストを作成してくれるサービスで,現時点で「Ruby, JavaScript, Python, PHP」など,多くのプログラミング言語がサポートされている.他にも「Go, .NET」などは BETA &…

コンテナのデザインパターンを学べる論文「Design patterns for container-based distributed systems」を読んだ

2016年に USENIX Conference で発表された論文「Design patterns for container-based distributed systems」を読んだ.タイトルの通り,コンテナのデザインパターンがまとまっていて,これからコンテナ設計をする人も,既にコンテナを運用している人も,デ…

GitHub の README.md をバッジでオシャレにできる Shields.io と dockeri.co

最近 GitHub リポジトリに「バッジ」を設定するため「Shields.io」というサービスを使った.README.md をオシャレにできて,とても便利だったので紹介しようと思う.ただ数年前からあったサービスらしく,今まで使ったことがなかった! shields.io バッジの…

たった 19.9MB!mkr の公式 Docker イメージが公開された

今月のアップデートで,Mackerel コマンドラインツール mkr の公式 Docker イメージが公開された. mackerel.io mkr monitors { pull / diff / push } 2年前に記事を書いているけど,CircleCI と mkr を組み合わせて Infrastructure as Code にした Mackerel…

「Japan Container Days v18.04」に参加して1日中コンテナのことを考えていた

今日は「Japan Container Days v18.04」に参加してきた.正直「Container Days」と言うよりも「Kubernetes Days」って感じだったけど,1日ずっとコンテナのことばかりを考えていた.発表テーマも多岐にわたっていて,バランスが非常に良かったと思う.僕が参…

ECS コンテナインスタンスをモニタリングするときは mackerel-agent v0.49.0 以上にすると良さそう

例えば ECS コンテナインスタンスなど,Docker ホストとして使っているインスタンスを Mackerel でモニタリングする場合,以下のように disk と interface と filesystem のメトリクスが非常に多くなってしまう.Mackerel では,メトリクス数が 200 を超える…

事前にデータ投入をした MySQL Docker イメージを作る場合は /docker-entrypoint-initdb.d を活用すると便利

事前にデータ投入をした MySQL Docker イメージが必要になり,最初は「Dockerfile で頑張る感じかなぁ...」なんて考えながら調査をしていたら,公式の MySQL Docker イメージに「カスタムスクリプトを実行する機能」が用意されていることを知って,全て解決…

Mackerel で ECS の動的ポートマッピングに対応したタスクのメトリクスを取得する

前回書いた記事に続き,Mackerel を使って ECS のメトリクスを取得する方法を検証していて,今回は「パターン2 : コンテナインスタンスに mackerel-agent をインストールする」の検証結果をまとめる.前提としては前回と同じで,ALB の動的ポートマッピング…

mackerel-agent タスクをコンテナインスタンスごとに起動して ECS のメトリクスを取得する

最近 Mackerel を使って ECS のメトリクスを取得する方法を検証している.ポイントとしては,ALB の動的ポートマッピングを使うところで,コンテナインスタンスの中で複数のタスク(コンテナ)が起動されるため,全てのタスクのメトリクスを取得する必要があ…

docker login をせずに ECR を操作できる awslabs/amazon-ecr-credential-helper

3月末に参加した「JAWS-UG コンテナ支部」で知った ECR (Amazon EC2 Container Registry) の便利ツール Amazon ECR Docker Credential Helper を試した.Amazon ECR Docker Credential Helper を使うと ECR のログインを省略できる. kakakakakku.hatenablog…

CircleCI + ecs-deploy で ECS にデプロイをする

引き続き ECS のデプロイを調査していて,今回は導入された話を比較的よく聞く ecs-deploy を試した.AWS CLI と jq に依存しているけど,Shell 100% で実装されているため,実行環境の構築が不要という手軽さが1番のメリットだと思う. github.com ちなみに…

「JAWS-UG コンテナ支部 入門編 #4」に参加して ECS の事例を聞いてきた

3/30(木) に参加して既に3週間もたってしまったけど,ECS の事例を聞きたいなと思って「JAWS-UG コンテナ支部 入門編 #4」に参加してきた.今回は「入門編」だったので,僕のレベル的にちょうど良いなと思った.あと JAWS 系のイベントは “19-21時” でサクッ…

CircleCI で ECS にデプロイをするサンプルプロジェクト circleci/go-ecs-ecr を試した

CircleCI を使って,ECS に Docker コンテナをデプロイする方法を調べていたら,CircleCI が公開しているサンプルプロジェクト circleci/go-ecs-ecr の存在を知ったので,さっそく試してみた. circleci/go-ecs-ecr を動かすと,Golang の API が動く Docker…

「JAWS-UG おコンテナ支部 #5」に参加して ECS の運用事例を聞いてきた

月曜日に「JAWS-UG おコンテナ支部 #5」に参加してきた.全体的に実践的な Ops の話で,凄く勉強になったのと同時に,未だに本番環境での運用経験がない僕にとっては難しい話も多かった.もう既に1年以上の運用ノウハウを持ってるプロダクトも多いし,ECS を…

Docker Compose を使って HAProxy に入門した

今日から GW だし,今まで試したことの無かった HAProxy に入門してみた.今回は複数台ある nginx に対してリクエストを分散させるだけで,初歩的な動作確認になっている. 環境 今さら Vagrant 環境を構築するのも面倒で,今回は Docker を使おうと思ったの…

軽さは正義!を口癖にしよう /「Alpine Linux Meetup Tokyo #1」に参加した

今すぐに導入する機会はなさそうだけど,前から気になってた Alpine Linux の情報が欲しくて「Alpine Linux Meetup Tokyo #1」に参加してきた.簡単にメモっておこうと思う. alpine-linux-meetup.connpass.com アイスブレイク @tori_cluster 最初は Alpine …

CircleCI + Docker で Infrastructure CI (Chef + Serverspec) 環境を構築した

近況 3月から DevOps 関連の技術的負債の解消に取り組んでいて,動かなくなった Chef を直したり,秘伝のタレ(手動)で構築されたサーバ設定を Chef にリバースエンジニアリングしたり,Serverspec を導入して稼働中のサーバの差異を確認したりしている. …

Docker Meetup Tokyo #6 に参加してコンテナパターンの知見を得た

参加してから既に1週間過ぎてて今さら書くの!って言われそうだけど,先週土曜に参加してきた「Docker Meetup Tokyo #6」のメモを残しておこうと思う.倍率2倍以上の抽選に当選できて良かった.去年夏にあった #5 にも参加してるし,Docker Meetup に関して…

Docker で MySQL 5.7 を動かして新機能 JSON 型を試してみた

MySQL 5.7 の新機能を見たらあまりにも多くて驚いたけど,簡単に動かしてみようと思って,今回は新たに追加された JSON 型を試してみた. Complete list of new features in MySQL 5.7 Docker で MySQL 5.7 を動かす Docker Hub に書いてある手順の通りにコ…

Serverspec で Docker コンテナをテストする

Serverspec 本を読んでたら Docker コンテナのテストができるって書いてあったので boot2docker で試してみた! サンプルレベルだけどー. Kakakakakku/dockerfilesgithub.com spec_helper.rb ポイントは spec_helper.rb に Docker バックエンドの設定を書く…

Docker Meetup Tokyo #5 に参加して Kubernetes を使いたくなった

夏休み中だけど,最近 Docker に注目してるってこともあって Docker Meetup Tokyo #5 に参加してきた! 受付のときに僕の前で Docker ステッカーが無くなってしまってもらえなかったー!残念過ぎる.早めに受付したし,参加人数分は用意してあったら良かった…

「Docker で遊ぶ会」を開催した

昨日の夜に社内で「Docker で遊ぶ会」を開催した. 先週の勉強会で Docker の話をしたら「もっと教えて!」っていう声が多くて,僕がハンズオン形式で Docker を教えることになった.勉強会は毎週開催してるけど,ハンズオン形式の勉強会っていうのは初の試…

Docker Tシャツを着て Docker の話をした

今日は社内の勉強会で Docker の話をした! 話だけだと面白くないなーと思って,boot2docker を使ってデモしたり. グッズ駆動開発 最近「グッズ駆動開発」が自分の中で流行っててオススメ! Docker Tシャツ着てるのに Docker のこと知らないなんて恥ずかし…