ハロの外部記憶インターフェイス

そろそろ覚える努力が必要かも…

Web開発用 イメージ作成

開発用Dockerfileの作成について

Dockerfileをそれぞれ作成すると、開発環境がバラバラになる可能性があるため、 中間イメージとしてDockerfileを作成する必要がある。 狙いはベースイメージとして開発環境を固定し、開発成果物のみを各々の環境でデプロイしテストが可能にする。

想定フォルダー構成

/home/docker/webdev
├ Dockerfile.base
├ Dockerfile
 website.tar

Dockerfile.base

ベースとなるCentOSにWebサーバーをインストールしたもの ビルドの後、website.tarを指定場所にコピーする処理を実装

FROM centos:latest

RUN ["yum", "-y", "install", "httpd"]

ONBUILD ADD website.tar /var/www/html

CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]

※tarファイルは指定フォルダーへ展開される。

web-baseイメージの作成

$ docker build -t web-base -f Dockerfile.base .
Sending build context to Docker daemon  5.632kB
Step 1/4 : FROM centos:latest
latest: Pulling from library/centos
....
Step 2/4 : RUN yum -y install httpd
...
Step 3/4 : ONBUILD add website.tar /var/www/html
 ---> Running in 37afe974fe3d
 ---> ed66927c562e
Removing intermediate container 37afe974fe3d
Step 4/4 : CMD /usr/sbin/httpd -D FOREGROUND
...
Successfully built 703c87e8a452
Successfully tagged web-base:latest

イメージの確認

centosがpullされ、centosをベースにhttpdがインストールされたweb-baseイメージが作成されている。

$ docker images
REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
web-base                       latest              703c87e8a452        3 minutes ago       309MB
centos                         latest              196e0ce0c9fb        6 weeks ago         197MB

we-baseイメージをベースとするWebサーバ用イメージの作成

wbe-baseをベースとしたイメージを作成する。 Dockerfile

FROM web-base

web-imageの作成

このタイミングでwebsite.tarファイルがコピーされる。

$ docker build -t web-image .
Steop 0 : FROM web-base
Trigger 0, ADD website.tar /var/www/html/
...

コンテナの作成・起動

web-imangeを利用してコンテナを実行する。

$ docker run -d -p 80:80 web-image