Dockerを使った可視化環境の作り方

4f38f9a2ec752ffc095fac2fe2c7c400?s=47 Masa
March 24, 2019

 Dockerを使った可視化環境の作り方

Event:
- 2019/03/24 はんなりPython+PyData Osakaの可視化特集 https://goo.gl/dT1Dz3
Repository: https://git.io/fjJvi

4f38f9a2ec752ffc095fac2fe2c7c400?s=128

Masa

March 24, 2019
Tweet

Transcript

  1. Dockerを使った可 視化環境の作り方 はんなりPython+PyData Osakaの可 視化特集 2019/03/24 @masayuki14

  2. Masaといいます もりさきまさゆき @masayuki14 プロ主夫 フリーランス (パートタイム) ‐ ソフトウェアエンジニア ‐ データベーススペシャリスト

  3. このアイコン Follow me !!

  4. 自己紹介 コミュニティ はんなりPython (第3金曜開催@京都) ‐ OSS Gate (京都, 大阪, 東京)

    ‐ スプーキーズアンバサダー
  5. スプーキーズ@京都 ボードゲーム制作 Web系システム ソーシャルゲーム開発 Webエンジニア積極採用中!!

  6. スプーキーズ@京都 もくもく会 モクモクモック 2019/03/28 モクモクモック(末木会)#6 ‐ 勉強会 テクテクテック 2019/04/10 テクテクテック

    #8 サーバ監視や負荷 テストどうやってるの? ‐
  7. Dockerを 使った可視化 環境の作り方

  8. Dockerを使った可視化環境 の作り方 Docker環境までの道のり 1. Docker環境の紹介 2.

  9. Dockerを使った可視化環境 の作り方 Docker環境までの道のり 1. Docker環境の紹介 2.

  10. Docker環境までの道のり 可視化アプリをつくろう!! 困ったことがたくさん できることから少しずつ Dockerで開発環境ができてた

  11. 可視化アプリを作ろう! ハンズオンでDash 簡単にできそう 興味のあるデータがない 懇親会でわいわい アイデアが降りてきた

  12. 遊園地の待ち 時間を可視化 しよう!

  13. USJ! TDL! TDS!

  14. 可視化アプリを作ろう! というわけで 待ち時間可視化アプリの 開発を始めるが・・・。

  15. Python 難しい

  16. 困ること 多すぎ

  17. ところでぼくの基本スペック プログラミング 10年以上 ‐ Pythonコミュニティ 1年ちょっと ‐ Python 3ヶ月 ‐

  18. 困ったこがたくさん 環境どうしよう MacのプリインストールPython ‐ Dashのためのライブラリ ‐ PC汚したくない ‐ pyenv venv

    わからん ‐
  19. 困ったこがたくさん Python慣れてない やりたいことがすぐできないストレス ‐ ライブラリ知らない ‐ 書きながら動かしたい ‐

  20. 困ったこがたくさん Pandas慣れてない CSVはあるけど目的の形にできない ‐ データ操作のストレスが爆発 ‐ 処理が重い ‐ データだけみたい時こまる ‐

  21. 困ったこがたくさん PC2台 デスクトップ ‐ ラップトップ ‐ 環境揃えたい ‐

  22. なんとか ならんか

  23. 近道は ない

  24. こつこつ やるしか ない

  25. できることから少しずつ 環境どうしよう Docker使おう!! ✓ 使い捨てでいいや ✓ バージョンとか気にしなくていい ✓ PC汚れない ✓

  26. できることから少しずつ Python慣れてない JupyterNotebook!! ✓ 書いて動かすを繰り返す ✓ 試行錯誤を保存 ✓

  27. できることから少しずつ Pandasなれてない MySQLでやる!! ✓ 慣れてる ✓ Pandasは最低限 ✓ そのうち慣れるやろう ✓

  28. できることから少しずつ PC2台 docker-compose.yml ✓ Infra as a code ✓ 宣言的な記述で管理

    ✓ リポジトリで共有 ✓
  29. 基本にある考え ゴール重視 可視化アプリが動くこと ‐ できること重視 Pandas覚えたいわけじゃない ‐ 射撃しつつ前進 Joel on

    Software 読んでくれ ‐
  30. Joel on Software

  31. こつこつ 進めた結 果

  32. Docker環 境のでき あがり

  33. Dockerを使った可視化環境 の作り方 Docker環境までの道のり 1. Docker環境の紹介 2.

  34. Dockerとは 引用元: https://knowledge.sakura.ad.jp/13265/

  35. Dockerとは こんな図でわかるわけない 仮想環境とかよくわからん つよい人の理論 Windowsつらい

  36. Dockerとは (雑な解説) コンピュータの中に箱を用意 必要なものを詰め込む いい感じにつかう はんなりPythonに来て たまに使うから ‐

  37. できあがったDocker環境 +--------+ +-------+ +---------+ | | | | | |

    | Dash | ----- | MySQL | ------ | Jupyter | | | | | | | +--------+ +-------+ +---------+ | | +---------+ | | | +----------- | adminer | | | +---------+
  38. Dockerfle FROM python:3.7 # for dash RUN pip install dash==0.36.0

    RUN pip install dash-html-components==0.13.5 RUN pip install dash-core-components==0.43.0 RUN pip install dash-table==3.1.11 RUN pip install dash-daq==0.1.0 RUN pip install pandas RUN pip install mysql-connector-python==8.0.15 RUN export LANG=ja_JP.UTF-8
  39. docker-compose.yml version: '3.7' services: dash: build: context: ./dockerfiles dockerfile: Dockerfile.dash

    command: ["python", "/work/dash/app.py"] working_dir: /work depends_on: - db volumes: - ./:/work - ./logwh:/log ports: - 8050:8050
  40. docker-compose.yml db: image: mysql:8.0 command: - --default-authentication-plugin=mysql_native_password - --secure-file-priv=/log restart:

    always environment: MYSQL_ROOT_PASSWORD: root MYSQ_DATABASE: pydata ports: - 3306:3306 working_dir: /work volumes: - ./db/mysql/datadir:/var/lib/mysql - ./db/mysql/log:/var/log/mysql
  41. Infra as a Code Dockerfle docker-compose.yml etc… 環境を再現しやすくなる

  42. Demo https://git.io/fjJvi

  43. まとめ Dockerを使って問題解決! 可視化関係なかった! はんなりPython来てね

  44. ありがと うござい ました