nikkie-ftnextの日記

イベントレポートや読書メモを発信

イベントレポート | 第31回 Pythonもくもく会 〜Dockerトーク準備〜 #mokupy

はじめに

いつも心は虹色に! nikkieです。
8/25はmokupyにお邪魔して登壇準備を進めてきました。

勉強会の概要

第31回 Pythonもくもく会 - connpass

主にPythonに関するやりたいことを各自持って来て、進めていく感じのゆるい会です。 もくもく開発をして情報共有したり、交流を深めることができればと思っています。 是非お気軽にご参加ください。(Python初心者の方でも大歓迎です!)

ゆるさが持ち味のもくもく会です。

取り組んだこと:Dockerトーク準備

10分枠の登壇の機会をいただいたので、Pythonista向けにDockerを使い出す話をします。
みんなのPython勉強会#38 - connpass
Dockerを独学したところ、環境構築の大変さがだいぶ和らぐという印象です。
PythonはWeb開発も機械学習もできますが、分野をまたぐときに環境構築が発生します。
ここをDockerで省力化できますよと共有する予定です。

複数のPython環境を用意する

docker runで簡単にできます。

$ docker run -i -t --rm python:3.6 bash
root@d12b897d5783:/# python -V
Python 3.6.6
root@d12b897d5783:/# exit
$ docker run -i -t --rm python:3.7 bash
Unable to find image 'python:3.7' locally
3.7: Pulling from library/python
 :
Status: Downloaded newer image for python:3.7
root@d62346cb3a11:/# python -V
Python 3.7.0
root@d62346cb3a11:/# exit
$

docker run -vでフォルダを共有する

version.py

from platform import python_version


if __name__ == '__main__':
    print(python_version())

※前提: カレントディレクトリからは./first/version.pyという配置です。

$ docker run -i -t -v "$(pwd)"/first:/home --rm python:3.6 bash
root@fc43deb1393b:/# cd home/
root@fc43deb1393b:/home# ls -l
total 4
-rw-r--r-- 1 root root 91 Aug 25 02:40 version.py
root@fc43deb1393b:/home# python version.py 
3.6.6
root@fc43deb1393b:/home# exit
$ docker run -i -t -v "$(pwd)"/first:/home --rm python:3.7 bash
root@9e518e76f970:/# cd home/
root@9e518e76f970:/home# ls -l
total 4
-rw-r--r-- 1 root root 93 Aug 25 02:42 version.py
root@9e518e76f970:/home# python version.py 
3.7.0
root@9e518e76f970:/home# exit
$

"$(pwd)"の仕組み


成果発表の時間で発表させていただき、気づいたのは2点。

  • Dockerの説明、必要なところだけにしたつもりでも時間全然足りない。もっとやること絞らないと
  • 先日のk8sハンズオンを参考に、テンプレートとなるdocker runコマンドを用意して数パターン実行というのはどうだろう

読書会に向けて帰り道にpypro読んでの気づき

  • 仮想環境にもよさはある。Dockerはデプロイ簡単にしてくれるのと、複雑な環境構築を簡略化してくれる役割で使うのがよさそう(仮想環境の代わりにDockerで統一というのはやりすぎと認識。銀の弾丸などないということですね)

成果発表から

だいぶ盛り上がりました。

終わりに

想いを寄せているDockerの良さを伝えられるよう、引き続き準備して臨もうと思います。
参加者の皆さま、1日ありがとうございました。お疲れ様でした。