icttoracon.net 8/28,29に開催されたICTトラブルシューティングコンテストにanko氏, fomidtk氏, seasonの三人で参加しました。ネットワークとか分かるんですか??いいえ。本番二日前にあるよって言われたときは、「過去の自分、こんなものに手を挙げたのか」と思った。
一日目
最初は皆で14 Webサーバが立ち上がらないを読んだ。Pythonモジュールがないのでinstallするのかなあと分かった。偶然にもつい最近Pythonを始めたので「分かった。凄い」となった。この問題はfomidtkさんが回答を作成しました。
その後は三人で別々の問題を考えた。9 止まらないを見るも全然分からない。ankoさんの指示通りにMakefileのコマンドにオプション-t -i
を付けるとなんか分からんけどできる。ところがankoさんもよく分からないそうなので自分が調べることに。ICTSCはトラブルを解決するだけではだめで、原因とか対策をちゃんと説明しないといけないのです。そもそもdockerが何か知らないのに分かるかーと思いつつググってみると次のページを見つけた。
docs.docker.jp
qiita.com
ふむふむ。普通にdocker run
をやると標準入力が使えないけどこのオプションを付けると使えるようになる、と理解して次のような回答を作成した。
お世話になっております。チームosushiです。
この問題ではdockerの起動中に標準入力が機能しないことが原因でトラブルが発生したと>考えられました。
そのため、docker runのオプション
-t
,--tty
: 疑似ターミナルの追加
-i
,--interactive
: コンテナのstdinにアタッチを追加することで正しく動くことを確認いたしました。
確認のほどよろしくお願いします。
手順
1./home/user/test/Makefileの編集
変更前:
docker run --rm -v $(PWD)/:/go/src/app -w /go/src/app -p 8080:8080 golang:latest go run main.go
変更後:
docker run --rm -t -i -v $(PWD)/:/go/src/app -w /go/src/app -p 8080:8080 golang:latest go run main.go
20分後に見てみると無事50点を獲得。やったね。
その後も問題を考えたが何も分からず。もはや自分に分かる問題はなかった。
二日目
問題は一日目と同じです。もう分かるやつがないのでその場でネットワークのお勉強を始めました。結果何も分かりませんでした。すみません... 一位と二位のチームだけずっと不動だったの凄い。
感想
コンテストは両日とも10:00-16:30の6時間30分でした。つらーい。大学入って初めての大会だった。