書籍「Dockerによるアプリケーション開発環境構築ガイド
Dockerを勉強するために購入した書籍「Dockerによるアプリケーション開発環境構築ガイド(櫻井洋一郎、村崎大輔[著] ISBN978-4-8339-6458-0)」に掲載されていた演習をやった。
Chapter6でCircleCIというサービスを利用した解説があるが、すんなり行かな買ったので備忘録。
ハマったポイント
書籍サイトからダウンロードできるconfig.ymlはちょっと修正が必要。
i) setup_remote_dockerがコメントアウトされてしまっているがないと、Dockerが見つからないと言って怒られる。書籍での記載にはsetup_remote_dockerが入っているが、Webからダウンロードできるファイルには入っていない。
( "- setup_remote_docker" を"- checkout"の後ろに入れる )
ii) IMAGE_NAME="sampledocker1234/ci_sample..." のsampledocker1234の部分は、自分のDockerHubユーザー名にする ( 小文字でないといけない。大文字が入っている人はDockerHub側のユーザー名を変更する必要あり)
iii) $DOCKERHUB_ID という部分は ${DOCKERHUB_ID} と修正する必要がある。(DOCKERHUB_PASSも同様に)
version: 2
jobs:
build:
working_directory: /nginx
docker:
- image: docker:17.05.0-ce-git
steps:
- checkout
- setup_remote_docker
# - setup_remote_docker:
# docker_layer_caching: true
- run:
name: Build docker image
command: |
docker build -t nginx .
- deploy:
name: Push docker image to DockerHub
command: |
if [ "${CIRCLE_BRANCH}" == "master" ]; then
DATE_LABEL="$(date '+%Y%m%d%H%M')-$(echo $CIRCLE_SHA1 | cut -c -6)"
IMAGE_NAME="your_dockerhub_id/ci_sample:${DATE_LABEL}"
docker tag nginx ${IMAGE_NAME}
docker login -u ${DOCKERHUB_ID} -p ${DOCKERHUB_PASS}
docker push ${IMAGE_NAME}
fi
最後に
本書、なかなかの良書と感じています。掲載されている手順に関しては完成度にまだ改善の余地ありですが、完成度よりも鮮度も大事な世の中なので感謝しています。
CircleCIを使うとDockerイメージをバックグラウンドで更新してくれるんで楽ですね。