2 minutes
[Docker] golangとredisのコンテナを繋いでみた
お世話になっております。
しゃまとんです。
先月のDocker触ってみた話に引き続いて、作ったgolang環境からredisに繋いでみるテストをしました。 今回は複数のコンテナでの連携的なやつです。
連携にはdocker-composeという仕組み(?)を使うといい感じにやってくれるらしいです。 docker-composeを使うにはdocker-compose.ymlを作成する必要があります。
golangからredisに接続して操作するには外部のパッケージが必要なので、自分で作成したimageを利用して、 環境を用意するDockerfileを作成します。確認用のコードは記事にしたものをそのまま使います。
まずはDockerfileです。
やっているのは、dockerhubからimageを取得し、redigoをgo getし、確認用コードをコピーします。
redigoでの接続先はdockerの状況で多少異なるかもしれません。(特に意識しなければ、192.168.99.100:6379)
次にdocker-compose.ymlです。
redisはイメージから取得(image)、go-redisはdockerfileから作成する設定(build)にします。
そしてredisにlinkするように設定します。
あとはtest_redis.goを用意したら、イメージとコンテナを作成していきます。まずはイメージをビルドします。
$ cd golang-redis
$ docker-compose build<
実行すると、go_redisのイメージ生成が行われます。(名前がちょっと変)
それではdocker-composeを利用して、コンテナを起動します。 redisのイメージがローカルにない場合は、取得しにいきます。 今回はrunの後にgo_redisを指定して生成したコンテナに接続するようにしています。
docker-compose run go_redis bash
ターミナル表示が切り替わるので、テストコードを実行してみます。
こんな感じで接続できました。docker-composeを使うと簡単に複数のコンテナを組み合わせて使えるし、 構成もサクッと変更できて便利ですね。
今回もリポジトリにしておいたので、ご自由にお使いくださいませ。
以上です。