Slide 1

Slide 1 text

VisualStudio Code Dev Containersの ススメ Python編 ニフティ株式会社 三浦 拓実

Slide 2

Slide 2 text

三浦 拓実 オプションサービス開発チームのリーダー兼スクラムマスター 担当サービスは常時安全セキュリティ24(2004年開始)、@nifty VPN Wi-Fi(2018年開始)、@nifty ADクリーナー(2023年開始)など 新規サービス開発の要求定義から設計、実装、運用まで幅広く 手がけています。 趣味は音楽鑑賞やファッションなど。 突発的に旅行に行きがち。

Slide 3

Slide 3 text

今からPython始める人 どう始めるのがいい?

Slide 4

Slide 4 text

まずPythonを手元のPCに インストール...しない

Slide 5

Slide 5 text

PythonをPCにインストールしない理由 ● 手元の(ローカル)PCへのインストールは面倒が多い ○ Python自体のバージョンがひとつに固定されてしまう ○ インストールするライブラリも固定される ■ pyenv、venv、pipenvといったツールで解決できるが管理が結構煩雑 ● 他のメンバーと開発する時に、PCの細かい差分でトラブルが起こる ○ 他にインストールされているソフト、Windows / Macの設定、ネットワークの状況など ● だったら同じ設定のローカルPC増やせばいいだろ! ○ PCをプログラムごとに用意できる大富豪ならそうしてもいいが、現実的ではない プログラムを書いて勉強するならPython自体の管理の手間はなるべく減らして、 実際にプログラムを書く時間を増やすべき。

Slide 6

Slide 6 text

偉い人は考えた ローカルPCの中に仮想でPCを立ち 上げれば、プログラムごとにいくら でも環境を作れるのでは......?

Slide 7

Slide 7 text

ローカルPCの中に仮想環境を作る あなたのローカルPC Pythonで データ分析 やるための 環境 Pythonで WEBアプリ 作るための 環境 Pythonで 数値計算 するための 環境 + ↑仮想のコンテナ環境を立ち上げ↑

Slide 8

Slide 8 text

ローカルPCに必要なソフト ● Docker ○ コンテナ型仮想環境を作成・管理するソフト ○ 公式Webサイトからインストールできる ○ 個人利用なら無償、企業で利用する場合は条件次第で有償 ● VisualStudio Code(VS Code) ○ マイクロソフトが管理するオープンソースのエディタ ○ 公式Webサイトからインストールできる ○ さまざまな拡張機能が作られていて、好みにカスタムできる ● Dev Containers ○ VS Codeの拡張機能、VSCode上でインストールする ○ ローカルPCに立ち上がったコンテナに接続してコンテナを VSCodeから操作できるようになる

Slide 9

Slide 9 text

ファイル構成と中身 { "name": "Python DevContainer Practice", "dockerComposeFile": [ "docker-compose.yml" ], "service": "app", "workspaceFolder": "/app" } version: "3" services: app: build: context: .. dockerfile: Dockerfile volumes: - type: bind source: .. target: /app hostname: app command: sleep infinity FROM python:latest # 任意のバージョンを指定 WORKDIR /app COPY . . RUN apt update && \ pip install --upgrade pip 最小構成はこんな感じ

Slide 10

Slide 10 text

立ち上げた後の画面 コンテナのOSは主にLinuxだが、 モダンなエディターが使える ターミナルからコマンドを叩け るので、pythonコマンドで書 いたプログラムの実行もできる 拡張機能でエディターに 好みの機能を追加可能

Slide 11

Slide 11 text

メリット / デメリット ● ひとつの環境の構築に集中で きる ○ トラブルが減り開発に集中で きる! ● 環境がコード化されており、 他のPCでもすぐに環境が再現 できる ○ 手順書や暗記は不要 ● 作った環境と同じコンテナを リリースできる ○ AWS, Google Cloud, Azure… ● 凝ったことをしようとすると 様々な知識が求められる ○ Linux、ネットワークなど ○ でもこれは勉強すればいい ● PCにある程度スペックが求め られる ○ メモリは16GB欲しい ○ お金で解決できる →デメリット、ないじゃん...

Slide 12

Slide 12 text

1日→10分 Dev Containersで短縮できた環境構築1回あたりの時間です Dev Containersで開発環境構築を短縮して環境を揃えることは 特に複数人のチーム開発で大きな威力を発揮します 開発環境の分離はトラブルを減らし、開発時間を伸ばしてくれます イカした開発環境を手に入れましょう!