Chefのレシピを書くとき、Dockerコンテナにレシピを流せると気軽に確認ができてよいなと思い、DockerコンテナにChefを流せるようにしてみました。
リポジトリを作ったので参考にどうぞ。
https://github.com/shoyan/nginx-and-ruby-on-docker
Install
DockerとChefをインストールしている必要があるので、以下からインストールしてください。
Docker
Chef
DockerコンテナにChefを流す
まずは、Docker QuickStart TerminalをクリックしてDockerを起動します(アプリケーションにあります)。
Dockerを起動したらNginxとrubyをインストールするCookbookを実行します。
1 2 |
|
以下のコマンドでimageをbuildします。
1
|
|
imageを確認
1 2 3 |
|
Dockerのコンテナを起動します。
image_idは docker imagesのIMAGE IDを指定します。
今回の場合は6b4d5602119fです(場合により変わります)。
1
|
|
–privilegedはCentOS7のimageでserviceコマンドを起動するおまじないです。
Dockerでsystemctlでserviceが起動できない
起動したDockerのコンテナにログインします。
1
|
|
ログインしたらDockerコンテナでChefを実行します。
1
|
|
Dockerを使うとChefを実行→コンテナを消す→真っさらな状態からもう一度Chefを流すというサイクルが気軽にできるので便利です。
もう一度真っさらな状態のコンテナを作りたいときは、以下のようにします。
1 2 3 4 5 6 7 8 9 |
|