$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Visual Studio Code Dev Containers ススメ Python編 -...
Search
ニフティ株式会社
PRO
March 21, 2024
Video
Resources
Programming
1
230
Visual Studio Code Dev Containers ススメ Python編 - NIFTY Tech Talk #17
ニフティ株式会社
PRO
March 21, 2024
Tweet
Share
Video
Resources
超入門 ここから始める開発環境 - NIFTY Tech Talk #17
https://nifty.connpass.com/event/312139/
More Decks by ニフティ株式会社
See All by ニフティ株式会社
継続的な改善のためのmodulesの適切な分割単位 - NIFTY Tech Talk #23
niftycorp
PRO
0
71
Re:ゼロから始めるTerraform生活 ~IaC入門編~ - NIFTY Tech Talk #23
niftycorp
PRO
0
71
Terraformにベストプラクティスを取り入れた - NIFTY Tech Talk #23
niftycorp
PRO
0
89
AWS AppSyncを用いた GraphQL APIの開発について - NIFTY Tech Talk #22
niftycorp
PRO
0
110
「天気予報があなたに届けられるまで」 - NIFTY Tech Talk #22
niftycorp
PRO
0
130
@nifty天気予報:フルリニューアルの挑戦 - NIFTY Tech Talk #22
niftycorp
PRO
0
120
@nifty天気予報のフロントエンドを 実装するまで - NIFTY Tech Talk #22
niftycorp
PRO
0
120
Application Signalsで始めるSLO ユーザー満足度を数値化する第一歩
niftycorp
PRO
2
240
FourKeysを導入したが生産性向上には至らなかった理由
niftycorp
PRO
1
70
Other Decks in Programming
See All in Programming
最新TCAキャッチアップ
0si43
0
250
watsonx.ai Dojo #4 生成AIを使ったアプリ開発、応用編
oniak3ibm
PRO
1
260
型付き API リクエストを実現するいくつかの手法とその選択 / Typed API Request
euxn23
9
4k
[Do iOS '24] Ship your app on a Friday...and enjoy your weekend!
polpielladev
0
210
.NET Conf 2024の振り返り
tomokusaba
0
170
Modular Monolith Monorepo ~シンプルさを保ちながらmonorepoのメリットを最大化する~
yuisakamoto
10
3.7k
Swift Testing - iPlayground
chiaoteni
0
140
Vue.js_好きに捧ぐ Nuxt Hub で簡単に始めるCloudflare
xiombatsg
1
100
Discord Bot with AI -for English learners-
xin9le
0
110
ローコードSaaSのUXを向上させるためのTypeScript
taro28
1
720
社内活動の取り組み紹介 ~ スリーシェイクでこんな取り組みしてます ~
bells17
0
370
Welcome JSConf.jp 2024
yosuke_furukawa
PRO
0
2.9k
Featured
See All Featured
Happy Clients
brianwarren
98
6.7k
Speed Design
sergeychernyshev
25
640
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Building an army of robots
kneath
302
43k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Code Review Best Practice
trishagee
64
17k
How to Think Like a Performance Engineer
csswizardry
20
1.2k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Practical Orchestrator
shlominoach
186
10k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Building Applications with DynamoDB
mza
90
6.1k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
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で開発環境構築を短縮して環境を揃えることは 特に複数人のチーム開発で大きな威力を発揮します 開発環境の分離はトラブルを減らし、開発時間を伸ばしてくれます イカした開発環境を手に入れましょう!