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