Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Visual Studio Code Dev Containers ススメ Python編 - NIFTY Tech Talk #17
Search
ニフティ株式会社
PRO
March 21, 2024
Video
Resources
Programming
1
83
Visual Studio Code Dev Containers ススメ Python編 - NIFTY Tech Talk #17
ニフティ株式会社
PRO
March 21, 2024
Tweet
Share
Video
More Decks by ニフティ株式会社
See All by ニフティ株式会社
チーム力を高めるスクラム実践法:カンバン公開と課題攻略について - ニフティのスクラムトーク Vol. 2 - NIFTY Tech Talk #18
niftycorp
PRO
1
130
スクラムチームと認知負荷 - ニフティのスクラムトーク Vol2. / NIFTY Tech Talk #18
niftycorp
PRO
1
140
dotfilesを作ろう - NIFTY Tech Talk #17
niftycorp
PRO
1
85
フロントエンドを始める前に どうしていっぱいツールがあるの? - NIFTY Tech Talk #17
niftycorp
PRO
1
130
サービスシステム監視 (シフト例)
niftycorp
PRO
0
65
スクラムマスターの技を磨く! ニフティのスクラムトーク vol. 1 - NIFTY Tech Talk #16
niftycorp
PRO
1
150
AWS基礎 / 2023 ニフティ新人研修
niftycorp
PRO
0
330
データベース / 2023 ニフティ新人研修
niftycorp
PRO
0
180
フレームワーク フロントエンド / 2023 ニフティ新人研修
niftycorp
PRO
0
200
Other Decks in Programming
See All in Programming
スタックトレース始めてみた
kuro_kurorrr
4
1k
Fast JSX: Don't clone props object #28768
yossydev
1
230
Runtime Objects in Rust
mitsuhiko
0
210
株式会社ゼネテック
genetec
0
120
Namespace, What and Why
tagomoris
3
610
Let's learn code review
riofujimon
2
630
Kotlin Multiplatform at Stable and Beyond (Android Makers 2024)
zsmb
0
600
Adding Security to Microcontroller Ruby
sylph01
0
140
RustでAWS Lambda functionをいい感じに書く
taiki45
2
140
Open AI APIを使う前に知っておきたいアカウントTier の話
akki_megane
0
130
初心者のためのRubyKaigi入門/RubyKaigi Introduction
a_matsuda
10
1.9k
TypeScriptから始める VR生活
tamagokakeg
2
110
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
245
20k
Fireside Chat
paigeccino
22
2.7k
No one is an island. Learnings from fostering a developers community.
thoeni
16
2.1k
Clear Off the Table
cherdarchuk
85
310k
Six Lessons from altMBA
skipperchong
22
3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
242
1.2M
We Have a Design System, Now What?
morganepeng
43
6.8k
Unsuck your backbone
ammeep
664
57k
Bootstrapping a Software Product
garrettdimon
PRO
302
110k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
126
32k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
275
13k
Git: the NoSQL Database
bkeepers
PRO
423
63k
Transcript
VisualStudio Code Dev Containersの ススメ Python編 ニフティ株式会社 三浦 拓実
三浦 拓実 オプションサービス開発チームのリーダー兼スクラムマスター 担当サービスは常時安全セキュリティ24(2004年開始)、@nifty VPN Wi-Fi(2018年開始)、@nifty ADクリーナー(2023年開始)など 新規サービス開発の要求定義から設計、実装、運用まで幅広く 手がけています。 趣味は音楽鑑賞やファッションなど。
突発的に旅行に行きがち。
今からPython始める人 どう始めるのがいい?
まずPythonを手元のPCに インストール...しない
PythonをPCにインストールしない理由 • 手元の(ローカル)PCへのインストールは面倒が多い ◦ Python自体のバージョンがひとつに固定されてしまう ◦ インストールするライブラリも固定される ▪ pyenv、venv、pipenvといったツールで解決できるが管理が結構煩雑 •
他のメンバーと開発する時に、PCの細かい差分でトラブルが起こる ◦ 他にインストールされているソフト、Windows / Macの設定、ネットワークの状況など • だったら同じ設定のローカルPC増やせばいいだろ! ◦ PCをプログラムごとに用意できる大富豪ならそうしてもいいが、現実的ではない プログラムを書いて勉強するならPython自体の管理の手間はなるべく減らして、 実際にプログラムを書く時間を増やすべき。
偉い人は考えた ローカルPCの中に仮想でPCを立ち 上げれば、プログラムごとにいくら でも環境を作れるのでは......?
ローカルPCの中に仮想環境を作る あなたのローカルPC Pythonで データ分析 やるための 環境 Pythonで WEBアプリ 作るための 環境
Pythonで 数値計算 するための 環境 + ↑仮想のコンテナ環境を立ち上げ↑
ローカルPCに必要なソフト • Docker ◦ コンテナ型仮想環境を作成・管理するソフト ◦ 公式Webサイトからインストールできる ◦ 個人利用なら無償、企業で利用する場合は条件次第で有償 •
VisualStudio Code(VS Code) ◦ マイクロソフトが管理するオープンソースのエディタ ◦ 公式Webサイトからインストールできる ◦ さまざまな拡張機能が作られていて、好みにカスタムできる • Dev Containers ◦ VS Codeの拡張機能、VSCode上でインストールする ◦ ローカルPCに立ち上がったコンテナに接続してコンテナを VSCodeから操作できるようになる
ファイル構成と中身 { "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 最小構成はこんな感じ
立ち上げた後の画面 コンテナのOSは主にLinuxだが、 モダンなエディターが使える ターミナルからコマンドを叩け るので、pythonコマンドで書 いたプログラムの実行もできる 拡張機能でエディターに 好みの機能を追加可能
メリット / デメリット • ひとつの環境の構築に集中で きる ◦ トラブルが減り開発に集中で きる! •
環境がコード化されており、 他のPCでもすぐに環境が再現 できる ◦ 手順書や暗記は不要 • 作った環境と同じコンテナを リリースできる ◦ AWS, Google Cloud, Azure… • 凝ったことをしようとすると 様々な知識が求められる ◦ Linux、ネットワークなど ◦ でもこれは勉強すればいい • PCにある程度スペックが求め られる ◦ メモリは16GB欲しい ◦ お金で解決できる →デメリット、ないじゃん...
1日→10分 Dev Containersで短縮できた環境構築1回あたりの時間です Dev Containersで開発環境構築を短縮して環境を揃えることは 特に複数人のチーム開発で大きな威力を発揮します 開発環境の分離はトラブルを減らし、開発時間を伸ばしてくれます イカした開発環境を手に入れましょう!