Docker 読書メモ

なぜか

流れでRancher JPに参加してみたら、とっても楽しそうなサービスだった。しかし、私はk8sどころかコンテナすら触ったことなかったため、さっそく前に買ってたけど読んでなかったオライリーさんでお勉強スタート

勉強BGM

 友人に勧められたBUMPの新譜。サブスク解禁になっているので新アルバムもまるっとApple Musicで聞けます。Alexaとも連携できるようになったし快適快適

なんでオライリー

とりあえずオライリーを1冊写経しといたらなんとかなるっていう経験則。あとinterop2019の会場でTシャツとトートバックにつられました。k8sも買いました

https://www.oreilly.co.jp/books/9784873117768

早速3章でつまずく

写経しているとうまくいかないところが

3.3 Dockerfileからのイメージの構築のP.25

FROM debian:wheezy

RUN apt-get update && apt-get install -y cowsay fortune

上記をDockerfileに書き込んでbuildしてね。と書いてあるので実行すると、、

Err http://security.debian.org wheezy/updates/main amd64 Packages

上記のエラー。よくわからないけど、wheezyさんが怪しいので「debian wheezy」でググると以下のサイトが一番上に

https://gihyo.jp/admin/clip/01/linux_dt/201903/25

「2019年3月25日 Debian,Wheezyなど古いバージョンをミラーサイトから削除へ」ですって。

初めて知ったのにもうお別れ。Wheezyは何者だったのだろうか。ちなみに私の持ってるオライリーさんは「2019年1月15日 初版第4刷」です。まぁ、しょうがない。第5刷では修正されるでしょう。きっと多分。第二版とかになってそうですけども。

ということで、よくわからないけど、以下のように修正してエラーは出なくなった。wheezyさん消しただけ。

FROM debian

RUN apt-get update && apt-get install -y cowsay fortune

また3章でつまずく

P.27でentrypoint.shを外に出して、Dockerfileから実行するようにするところ。シェルって正規表現とか暗号すぎてよくわかってないのだけれども、写経はできる。

#!/bin/bash

if[ $# -eq 0 ];then
  /usr/games/fortune | /usr/games/cowsay
else
  /usr/games/cowsay "$@"
fi

if文の締めがfiって。。すごい。finのこと?ひっくり返しただけ?どっち?

buildは通るけど、runすると以下のエラー。

/entrypoint.sh: line 3: syntax error near unexpected token `then'

なるほどよくわからないので、上記文字列をそのまま検索窓にコピペしてググる。

どうやら”記号の前後にスペースが必要”という仕様らしい。

まじかよ。わかんねーよそんなの。

debianのせいなのかもしれませんが、写経が目的なので一旦スルー。どこまで空白を入れたらいいのかわからなかったので試行錯誤して完成したソースがこちら

#!/bin/bash

if [ $# -eq 0 ] ; then
  /usr/games/fortune | /usr/games/cowsay
else
  /usr/games/cowsay "$@"
fi

if文のところが風通しが良くなりました。これで通った。下図のように名言を教えてくれる牛さんがコンテナに入りました。

cowsayスクショ
Talker are no good doers.
/usr/games/fortune | /usr/games/cowsay

シェイクスピアは読んだことありませんが、どういう意味だろ。“おしゃべり野郎は良い働きをしない”とか?

今日はここまで

ハラヘッタ

2019年7月11日技術書cowsay, docker, オライリー技術書, docker, オライリー

Posted by miu_crescent