Docker実践活用ガイド Chapter 10 DockerとJavaScriptでウェブサービスを作る(簡易オンラインジャッジシステム)
ずっと気になっていたDockerなのですが、本屋で見かけてこれなら(うちみたいな初級者でも)理解できそう、ということで購入。
厚みはある本なのですが256pとIT技術書にしては少なめ。
細かい仕様よりも、とりあえず動かしてみよう!ってところが気に入りました。
AmazonのKindle Unlimited対象なのも良い。
- 作者: 吉岡恒夫
- 出版社/メーカー: マイナビ出版
- 発売日: 2016/05/30
- メディア: Kindle版
- この商品を含むブログを見る
すでに業務とかで触っている人向けではないですね。
この本を参考書にハンズオン形式とかやるといいかもしれないなぁ、と思いましたわ。
蒙が啓かれる
うちはDockerを「本番環境をそのまま手元に再現できる、開発環境のツール」としか思ってなかったんですね。
でも、この本に掲載されている「任意のコードをDocker環境上で動かし、その結果をホストに持ってくる」ってのに衝撃を受けましたわ。
それってつまり、普通のソフトと同じように使えるということ。すごい。
2つの不満点・・・
Chapter 8 「複数のDocker を使う(Docker MAchine, Docker Swarm, Docker Compose)」
最後のDocker Composeで docker-compose scale web=3
でスケールアップできなかったこと。
前節のDocker Swarm のところから続けて試してたんだけど、暗黙の何かの前提条件があったのか、うちの見落としか、スケールアップすることができず。
動かせなかったDocker Composeは次のDocker本で改めて学習するつもり。
コードがWeb上にない!
目gerpで目を酷使してつらい。
そんで、いまからこの2016年の本を読む人がいるかどうかはともかく、うちはきっと戻ってくるだろう、ってことで10章のコードを載っけときます。
Docker実践活用ガイド Chapter 10 DockerとJavaScriptでウェブサービスを作る(簡易オンラインジャッジシステム) — Bitbucket
本に書いてあるものを少し拡張して、Perlのコードも試せるようにしています。Perl好きなんだもん仕方ないね。
Perl追加したことと、エディタの自動整形の影響で、本に掲載されている行数と異なってますのでご注意を(主に将来の自分へ)
お手軽に動かしてみたい!という将来の自分へ
環境
macOS 10.12.6
Docker for Mac で実行
$ docker version Client: Version: 18.06.1-ce API version: 1.38 Go version: go1.10.3 Git commit: e68fc7a Built: Tue Aug 21 17:21:31 2018 OS/Arch: darwin/amd64 Experimental: false Server: Engine: Version: 18.06.1-ce API version: 1.38 (minimum version 1.12) Go version: go1.10.3 Git commit: e68fc7a Built: Tue Aug 21 17:29:02 2018 OS/Arch: linux/amd64 Experimental: true
準備
コード実行環境用コンテナを用意する
# イメージ作成時に ubuntu-devの名前をつける # docker build -t ubuntu-dev . FROM ubuntu RUN apt-get update RUN apt-get install -y perl RUN apt-get install -y ruby RUN apt-get install -y python RUN apt-get install -y clang RUN apt-get install -y time RUN apt-get install -y binutils
コード実行環境のフロントエンド用コンテナをDocker Hubから持ってくる
https://hub.docker.com/u/sironekotoro/
docker pull sironekotoro/code-runner
イメージサイズはこんな感じ。大きい
docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu-dev latest 5cbc5fafea4f 17 minutes ago 674MB sironekotoro/code-runner latest 73722453f41f About an hour ago 678MB
起動
docker run -v /usr/local/bin/docker:/usr/local/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -p 3000:3000 --rm sironekotoro/code-runner
http://localhost:3000
にブラウザでアクセスする
遊ぶ
写経大変だった。あとでbitbucketにあげとこ・・・でもこれDockerだから上げるんならDockerHubの方がいいんかな pic.twitter.com/1cQwHyEuym
— sironekotoro (@sironekotoro) October 7, 2018
後片付け
docker stop $(docker ps -a -q)
docker rmi ubuntu-dev sironekotoro/code-runner