Docker

TLS/SSLサーバ証明書をDockerイメージで管理してみないか?

TLS/SSLサーバ証明書あるじゃないですか。アレ、Dockerイメージで管理して運用してみる方法もありじゃないか?という雑エントリです。 Data Volume Container Dockerコンテナにファイルやディレクトリを供給する方法は色々あって docker build のときにイメ…

AlpineコンテナでNode.jsからgRPCを利用する場合、libc6-compatが必要

Node.jsでgRPCを利用するアプリケーションを書いてるのだが、Alpine LinuxベースのDockerコンテナで運用する場合、ld-linux-x86-64.so.2 が無くて死ぬという備忘。 Error: Error loading shared library ld-linux-x86-64.so.2: No such file or directory (n…

CI環境におけるaws-cliのインストール結構つらいよね問題

つらい、というのはあくまでCircleCIとかでインストールするときの話。 github.com 動機 今Docker RegistryをAmazon ECRに移行していってるんですが、今までCI上でやっていたdocker build/docker tag/docker pushのプロセスをECRでも同様にやるために、ecr g…

go getで取得したcliツールのバイナリを持った軽量なDockerイメージをつくる

諸事情で欲しかった。 動機 gooseというGoで書かれたcliのDBマイグレーションツールを使っているのだが、こいつのバイナリだけを持っているDockerイメージが欲しい GoにもAlpine Linuxベースの軽量なイメージがある。しかしそれでも240MBくらいある ベースイ…

docker-composeをサポートしたCodefreshというCIサービスを使ってみた

CodefreshというDockerを使えるCIサービスがあるので雑に触ってみたというエントリです。 codefresh.io プラン プランについては各自確認してほしいんですが、基本的にPublicなリポジトリを扱い並列ビルドが要らなければ無料で使うことができます。 Open Sou…

Kotlinで書いたサーバアプリケーションのDockerイメージ構築パターン

Kotlinで書いたAPIサーバをDockerコンテナで運用する場合、どのような方式が実用的かを考えてみた。パターンと言っても今のとこ今回の一種くらい。 サンプルアプリ 今回書いたサンプルはこちら。 github.com 以前書いたSpark Framework with Kotlinの延長線…

dind(Docker in Docker)で複数のdocker-composeを管理する

この記事はDocker Advent Calendar 2016の8日目の記事です。 qiita.com 動機 microservices運用してるし、検証用プロジェクトとか遊び用プロジェクトとかあるし、複数docker-composeをローカルで運用するのしんどい。 dind(ディーインディー) dindとは何ぞ…

AWS Case StudyにてFRESH!のユースケースが公開されました

AWSは膨大な規模で利用されているので、各社のケーススタディが先人の知恵として公開されています。 自分の担当しているFRESH!でも日頃からAWSをフルに活用させてもらっています。 abemafresh.tv というわけでこの度、FRESH!のAWSの利用事例がAWSのCase Stud…

.ioドメイン障害でDocker運用環境に結構影響が出ている件

現在、.ioドメインの名前解決に問題が起きています。詳しくは以下の記事を見て頂けると一目瞭然です。 qiita.com .ioドメインは近年結構(開発系クラスタにとっては)人気で、ちなみにこのブログも.ioドメインを利用しているため、閲覧が難しい状況でした。 …

Dockerホストのパフォーマンスを引き出すTCPカーネルパラメータチューニング

もう半年くらいフルDockerでmicroservicesなサービスを運用してるんですが、イマイチパフォーマンスを出し切れていないなという面がありまして、今回DockerホストのTCPカーネルパラメータを抜本的に見直しました。 そしたら劇的に症状が改善して、インスタン…

DockerfileをLintするにはhadolintが良さそう

DockerfileもLintしたいなぁという欲がずっとあって調べてみたらこんなのを見つけた。 github.com Haskellで書かれたDockerfileのLintツールのようです。 インストール Macならhomebrewでできます。 $ brew install hadolint Lintしてみる サンプルとして提…

Dockerで開発環境のMySQLと同じデータを手軽にローカル環境でも利用する

Microservicesを運用していると、サービス毎にDBを持つことになってどうしても扱うDBやスキーマが多くなってしまいます。 開発環境のMySQL(AWSならRDS)に直接接続するならまだしも、DBはローカルにもって好き勝手に使ったり、汚したりスクラップしたりした…

AWS Summit 2016 Developers ConferenceでDockerとECSの話をしてきました #AWSSummit

本日、AWS Summit 2016 Developers Conferenceの方でアッベマティーヴィーフレッシュのDockerとECSの話をしてきました。 www.awssummit.tokyo スライドはこちらです。およそ400名ほどのキャパシティでしたが、立ち見も出るほど盛況だったようです。ありがと…

arukas cloudとDockerでお手軽に開発環境をゲットする #Arukas

Arukas Cloudとはさくらインターネット社が提供するDockerホスティングサービスです。 arukas.io 4/27よりオープンβテストの状態になり、現在は無料で利用できます(プレスリリースによると、2016年9月まで無料のようです)。 利用の仕方 GitHubアカウントが…

AWS Summit Tokyo 2016 Developers Conferenceに登壇します

そういえば来る6/3(金)、AWS Summit Tokyo 2016 Developers Conferenceに登壇することになりました。 www.awssummit.tokyo 6/3のDevCon-Use Case Trackで13:20からの枠になります。この1年、なんとかFRESHという動画配信プラットフォームを作っていたわけ…

Alpine Linux Meetupを開催します(トニーモリス枠あり)

来る4/14(木)に、21cafeにおいてAlpine Linux Meetup #1を開催します。 alpine-linux-meetup.connpass.com DockerのベースイメージがどんどんAlpineがデファクトになりつつなる中、今こそAlpine Linuxについてちゃんと知っておこうというのが主な宗旨です…

Amazon ECSでHAProxyのDockerコンテナを各Taskに配置するのがなかなか良い件

どうも、コンテナ芸人です。久しぶり?にAmazon ECSを使ったネタをお届けします。 今のプロジェクトではDBにMySQLを利用していますが、コスト低減のためにMaster(Multi-AZ)だけRDSでSlaveはEC2で構築しています。で、SlaveにはELB経由で参照していましたが、…

Alpine Linux入門 -内部構造とapkでパッケージインストール編-

さて、前回のエントリはAlpine Linuxの環境を作ってみる話でした。 stormcat.hatenablog.com 今回は実際にAlpine Linuxの中身を探索していったり、apkでのパッケージインストール等をやってみます。 前回使った仮想環境をそのまま利用します。前回の環境構築…

JAWS-UGコンテナ支部#4で喋ってきました #jawsug_ct

弊社のセミナールームで行われましたJAWS-UGコンテナ支部 #4で喋ってきました。 jawsug-container.connpass.com 今回は「Dockerイメージは軽ければ軽いほど価値がある!」ということでDockerの減量について特化して喋りました。発表スライドは以下をご覧くだ…

Amazon EC2 Container Service(ECS)と戯れた1年とコンテナ芸人の来年について

この記事はContainer with AWS Advent Calendar 2015の21日目の記事です。 昨日はpottavaさんの「AWSで docker-swarmクラスタを立ち上げようとして失敗した話」でした。 qiita.com Amazon EC2 Container Service (ECS)と戯れた1年 今年はproductionにDocker…

WebアプリをDocker構成にした場合にフロントエンドリソースを扱うためのデザインパターン

この記事はCyberAgent エンジニア Advent Calendar 2015の7日目の記事です。 www.adventar.org 6日目はkaelaelaさんの「なぜデザイナーとエンジニアは分業するのか」でした。 弊社のAdvent Calendarは2年連続の参戦です。思えば昨年も12月2週の月曜だった気…

JAWS-UGコンテナ支部 #3 で喋ってきた #jawsug #jawsug_ct

みなさま、秋のGIシーズンいかがお過ごしてでしょうか。 ところで今作ってるサービスとAmazon ECSについて JAWS-UGコンテナ支部 #3 について喋ってきましたよ(^ω^) jawsug-container.connpass.com 発表スライドはこちら。40分で喋られることって結構限ら…

UbuntuでUpstartを使ってECS Agentをサービス化する

さて、先日Docker1.8がリリースされました。なんといっても目玉はLogging DriverのFluentd対応ですが、ウチのプロジェクトでもこれの対応を見越して早速Docker1.8にバージョンをあげています。 Docker1.8で何が変わるかは以下のエントリを抑えておくとよいで…

クラウド(AWS)、Docker時代のサーバサイドエンジニアに素早く脱皮するための資料まとめ

チームに新しいメンバーが入ってきていて、クラウドやDockerが初めてなメンバーも結構いるので抑えておくべき書籍とかWeb文献をまとめなきゃなーと思ってたんですが、社内でドキュメントに残すよりもブログに書いたほうが良い気がしたのでブログに書きます。…

EC2 Container Service(ECS)を管理して、Blue-Green Deploymentを実現するツールを書いた

最近は暑いのでめっきり外に出なくなりましたが、相変わらずDevOpsのOpsばっかりやっています。 さて、今やってるプロジェクトではAmazon EC2 Container Service(ECS)で完全にDockerベースでの開発をしています。本番運用を見越したオペレーションの作り込み…

DockerイメージとGitのブランチ戦略

今のプロジェクトではDockerを本格投入し始めましたが、ブランチの運用もちゃんと考えないといけないなーと思って考えた次第。 リポジトリ モノリシックに色々な責務を持つリポジトリではなくて、1リポジトリ=1Dockerfileにするのが良いと思う。CIも無駄なく…

docker-composeの設定をECS形式に変換するツール

Dockerコンテナの集合を定義するdocker-composeってやつがありますが、EC2 Container Service(ECS)ではコンテナの集合をTask Definitionという概念があってdocker-composeの定義をそのまま使うことはできません。 Task DefinitionsはJSONで定義するんですけ…

Private Docker Registryを冗長化するためのDockerイメージ

前回、Private Docker Registryを立てる話を書きましたが、冗長構成じゃなかったのでしてみたって話。 Amazon EC2 Container Service(ECS)でPrivate Docker Registryを立ててみた - tehepero note(・ω<)stormcat.hatenablog.com 冗長構成用のDockerイメージ …

Amazon EC2 Container Service(ECS)でPrivate Docker Registryを立ててみた

初夏ですね(もうあちーよ)。 さて、今回はAmazon EC2 Container Service(以下、ECS)についてのネタです。 そもそもECSとは Amazon EC2 Container Service (高いスケーラビリティとパフォーマンスを備えたコンテナ管理サービス) | アマゾン ウェブ サービ…

Terraform0.4のDockerサポートを試してみた

みんなだいすきテッッラフォォォォムゥ!! ということで本日はTerraformネタをお届けします。 そもそもTerraformとは TerraformはHashicorpがリリースしているオーケストレーションツールです。 Terraform by HashiCorp ChefやAnsibleでは作られた環境に対してミドルウェ…

CircleCIアンチパターン 2015春

今日はCircleCIで気持ちよくCIを回すために、抑えておいた方が良いアンチパターンについて書きます。わりと基本的な話なので、心当たりがあれば見直してみると良いと思います。 Fat Repository Anti Pattern(巨大なリポジトリ) CircleCIのコンテナは使い捨…

CircleCIでDockerイメージをキャッシュするのに、実はちょっとした工夫が必要な件

2月ですね。 さて、CircleCIにはcache_directoriesという機能があって、前回のビルドでダウンロードしたり生成したりするもので時間的コストのかかるものをキャッシュしておいて、次回以降のビルドでコンテナにリストアできます。 例えば、MavenでJarを大量…

CircleCI上でFigを使ってDockerの構成管理をする

こんにちは、CircleCI芸人です。 最近はローカル環境もboot2dockerを使ってDocker環境を構築して開発しています。扱うコンテナが増えてくるとdockerコマンドはオプションも多いし、なかなかつらたんな面が多いわけですが、そんなときの構成管理にはFigを使っ…

aeromock-dockerを使って、APIに依存するアプリケーションのテストをローカルでもCircleCIでも簡単にできるようにする

AeromockのDockerイメージをDocker Hubに公開してみました。 stormcat24/aeromock Repository | Docker Hub Registry - Repositories of Docker Images 普段からDockerに慣れ親しんでいる人であれば、イメージを落としてきてAeromockのディレクトリをマウン…