7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Dockerで作る開発環境

Last updated at Posted at 2016-12-20

Dockerで開発環境作った時の話

こんにちは。セカイエの村田です。
先週から、うさぎを飼い始めました。
名前 「あき男」 っていいます

経緯

自分は '2016/8/1'からセカイエにjoinしたのですが、初日って入社手続きや開発環境作ったりいろいろありますよね。
セカイエの開発環境はおなじみの「 vertualbox + vagrant 」のLAMP環境なのですが、イメージ落としたり、シェルでプロビジョニング走ったり時間がかかります。

また、最近のvagrantとvirtualboxの相性が悪く、

スクリーンショット 2016-12-20 10.06.33.png

vagrantが仮想マシンに接続できないとかありました..

そんな経緯から、Dockerで開発環境作れればいいかなと思ったのがきっかけです

環境

作りたかった環境は以下のような感じで、

スクリーンショット 2016-12-20 10.11.40.png

Appコンテナ(PHP + Apache + CentOS) と DBコンテナ(MySQL)を切り離した構成になります

はまったところ

起動にはなるべく手間をかけたくなかったので、「Docker-Compose」というコンテナを複数管理できるツールを利用していたのですが、コンテナが立ち上がり使用できる状態になるまでの順番がうまくコントロールできなくて、はまりました><

具体的には、
アプリケーションはDBがないと動かないことが前提なので、Appコンテナが起動する前に、DBコンテナが起動されていて、且つ使用できる状態になっていなければいけないのですが、MySQLの初期処理があったりでどうしても、Appコンテナが先に立ちあがってしまう状態でした

いろいろ調べた結果、

Docker公式にもあったのですが、
スクリーンショット 2016-12-20 10.26.50.png

上記のようなスクリプトをentrypointにセットして、MYSQLコンテナが使える状態になるまで待つようにしました

今後の課題

Dockerをproduction環境でも利用できるような仕組みを整えたいと企んでいたりしてます。
今は、DockerHubとGitHubの連携もできるので、

スクリーンショット 2016-12-20 10.30.15.png

masterにpushしたファイルの中にDockerfileが含まれていたら、Dockerhubが検知してくれて自動でコンテナイメージをビルドしてくれるので運用も楽になりそうです

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?