<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>VS code | Goal-Path（ゴールパス） info</title>
	<atom:link href="https://goal-path.com/info/tag/vs-code/feed/" rel="self" type="application/rss+xml" />
	<link>https://goal-path.com/info</link>
	<description>属人経営を仕組みへ導く構造設計パートナー</description>
	<lastBuildDate>Sat, 04 Nov 2023 02:19:15 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://media.goal-path.com/wp-content/uploads/2023/04/11084850/cropped-goal-path_logo-32x32.png</url>
	<title>VS code | Goal-Path（ゴールパス） info</title>
	<link>https://goal-path.com/info</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【初心者向け】Python x Dockerの開発環境をVS Codeで構築</title>
		<link>https://goal-path.com/info/programing-vscode-docker-python/</link>
					<comments>https://goal-path.com/info/programing-vscode-docker-python/#respond</comments>
		
		<dc:creator><![CDATA[ともはろ@Goal-Path代表]]></dc:creator>
		<pubDate>Thu, 07 Jul 2022 11:02:48 +0000</pubDate>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[VS code]]></category>
		<guid isPermaLink="false">https://info.actpose.com/?p=539</guid>

					<description><![CDATA[本記事では、Docker上でPythonのプログラミングを実行できる環境を、VS Codeで構築する方法について紹介します。 本記事では環境構築のみの扱いですが、環境構築だけでなく『実際にPythonで開発してWEBアプ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>本記事では、Docker上でPythonのプログラミングを実行できる環境を、VS Codeで構築する方法について紹介します。</p>



<p>本記事では環境構築のみの扱いですが、環境構築だけでなく『実際にPythonで開発してWEBアプリを公開する方法まで知りたい』という方は、下記のリンクをぜひご覧ください！</p>




<a rel="noopener noreferrer" target="_blank" href="https://goal-path.com/app/plan/1" title="【初心者向け】WEBアプリ作成して公開する方法(Django + Nginx + MySQL + docker + AWS)" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img fetchpriority="high" decoding="async" src="https://goal-path.com/api/media/uploadimage/eye_catch_web_application_docker_django_aws_nginx_mysql_Y0IZtD9.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【初心者向け】WEBアプリ作成して公開する方法(Django + Nginx + MySQL + docker + AWS)</div><div class="blogcard-snippet external-blogcard-snippet">このプランによって、Django x Nginx x mysqlのWEBアプリをdockerコンテナ環境でイチから作成し、AWSにてインターネットに公開することが出来るようになります。このプランは、初心者・独学でもWEBアプリの作成・公開ま...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://goal-path.com/app/plan/1" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">goal-path.com</div></div></div></div></a>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0"> Docker ・ Python・VS Codeの特徴とメリット </a><ol><li><a href="#toc2" tabindex="0">Pythonの特徴とメリット</a></li><li><a href="#toc3" tabindex="0">Dockerの特徴とメリット</a></li><li><a href="#toc4" tabindex="0">VS Codeの特徴とメリット </a></li></ol></li><li><a href="#toc5" tabindex="0">必要なソフトウェアをインストールする</a><ol><li><a href="#toc6" tabindex="0">Dockerをインストールする</a></li><li><a href="#toc7" tabindex="0">VS Codeをインストールする</a></li></ol></li><li><a href="#toc8" tabindex="0">Python x Dockerの開発環境を構築する</a><ol><li><a href="#toc9" tabindex="0">拡張機能をインストールする</a></li><li><a href="#toc10" tabindex="0">Pythonのコンテナを作成する</a></li><li><a href="#toc11" tabindex="0">リモートコンテナを立ち上げる</a></li></ol></li><li><a href="#toc12" tabindex="0">さいごに</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1"> Docker ・ Python・VS Codeの特徴とメリット </span></h2>



<p>まず、Python、Docker、VS Codeとは何か？それぞれの特徴とメリットについてご紹介していきます。</p>



<h3 class="wp-block-heading"><span id="toc2">Pythonの特徴とメリット</span></h3>



<p>Pythonとは、オープンソースで運営されているプログラミング言語です。<span class="marker-under">Pythonのプログラミング言語としての主な特徴は、少ないコードで簡潔にプログラムを書けること、専門的なライブラリが豊富にあることなどが挙げられます</span>。Pythonについては、下記の記事にて分かりやすく紹介されています。</p>




<a rel="noopener noreferrer" target="_blank" href="https://www.internetacademy.jp/it/programming/programming-basic/what-is-python.html" title="Python&#12392;&#12399;&#65311;&#22823;&#20154;&#27671;&#12503;&#12525;&#12464;&#12521;&#12511;&#12531;&#12464;&#35328;&#35486;&#12398;&#12513;&#12522;&#12483;&#12488;&#12420;&#27963;&#29992;&#20107;&#20363;&#12434;&#12372;&#32057;&#20171;" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fwww.internetacademy.jp%2Fit%2Fprogramming%2Fprogramming-basic%2Fwhat-is-python.html?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Python&#12392;&#12399;&#65311;&#22823;&#20154;&#27671;&#12503;&#12525;&#12464;&#12521;&#12511;&#12531;&#12464;&#35328;&#35486;&#12398;&#12513;&#12522;&#12483;&#12488;&#12420;&#27963;&#29992;&#20107;&#20363;&#12434;&#12372;&#32057;&#20171;</div><div class="blogcard-snippet external-blogcard-snippet">「Python （パイソン）」は、今最も注目を集めているプログラミング言語です。その特長として、人工知能（機械学習や深層学習）などの最先端分野の開発にも使われている一方、文法が平易なため、プログラミング初心者の方でも大規模なWebアプリケー...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.internetacademy.jp/it/programming/programming-basic/what-is-python.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.internetacademy.jp</div></div></div></div></a>



<p>Pythonをプログラミング言語として選択することで、以下のようなメリットがあります。</p>



<ul class="has-watery-blue-background-color has-background wp-block-list">
<li>初心者でも比較的とっつきやすい</li>



<li>DjangoやFlaskなどのフレームワークによって、簡単にWEBアプリのバックエンド開発が出来る</li>



<li>機械学習やAIを活用したアプリケーションの開発が出来る</li>
</ul>



<h3 class="wp-block-heading"><span id="toc3">Dockerの特徴とメリット</span></h3>



<p><strong><span class="marker-under">Dockerとは、Docker社が開発したコンテナ環境を構築できるプラットフォーム</span>です。</strong>コンテナとはOSに仮想的なユーザ空間を作成することで、この空間上で環境を構築しアプリケーションを作成、配布、実行することができます。詳細が知りたい方は、以下の記事が参考になるのでぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://frontier.networld.co.jp/3182/" title="Dockerとは？～コンテナ・Kubernetesとの関係性～ | VMware Cloud Frontier by Networld" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://frontier.networld.co.jp/wp/wp-content/uploads/2021/03/UC_what-is-docker.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Dockerとは？～コンテナ・Kubernetesとの関係性～ | VMware Cloud Frontier by Networld</div><div class="blogcard-snippet external-blogcard-snippet">Dockerとは？～コンテナ・Kubernetesとの関係性～ 多くの企業がDX推進に注力する中で、Dockerを中心としたコンテナ活用への注目度が高まってきました。さらに、コンテナを管理するKubernetesにより、より複雑な環境の管理</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://frontier.networld.co.jp/useful-container/what-is-docker/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">frontier.networld.co.jp</div></div></div></div></a>



<p><span class="marker-under">Dockerによりコンテナ環境を構築するメリットは</span>、パッケージのインストールや、WEBサーバーとの接続設定をコード化することで、<span class="marker-under">本番環境と同じ環境で開発環境をつくれることです</span>。これによって、開発環境では動いたけれど、本番環境ではうまくいかないといった、環境によるリスクを軽減することができます。</p>



<h3 class="wp-block-heading"><span id="toc4">VS Codeの特徴とメリット </span></h3>



<p><span class="marker-under"><span class="bold"><strong>VS Code(Visual Studio Code)とは、</strong>マイクロソフト社が開発したエディタ</span></span>と呼ばれるソフトウェアのひとつです。<br>通常、<strong>プログラミングによる開発はこのエディタと呼ばれる開発環境で実行</strong>していきます。</p>



<p>VS Codeの詳細は以下の記事が参考となります。</p>




<a rel="noopener noreferrer" target="_blank" href="https://techacademy.jp/magazine/39548" title="Visual Studio Codeとは？インストールや使い方も現役エンジニアが解説 | TechAcademyマガジン" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://magazine-cf.techacademy.jp/wp-content/uploads/2020/06/22121239/149568404_s-800x534.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Visual Studio Codeとは？インストールや使い方も現役エンジニアが解説 | TechAcademyマガジン</div><div class="blogcard-snippet external-blogcard-snippet">初心者向けにVisual Studio Codeについて解説しています。これはMicrosoft社が提供するコードエディタです。Visual Studio Codeの特徴とメリット、導入と設定の手順、拡張機能の一部を紹介します。エディタ検討...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://magazine.techacademy.jp/magazine/39548" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">magazine.techacademy.jp</div></div></div></div></a>



<p>また、開発環境については、以下の記事が参考になるのでぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://e-words.jp/w/%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83.html" title="開発環境とは - IT用語辞典 e-Words" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://p.e-words.jp/img/Development-Environment-Image.webp" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">開発環境とは - IT用語辞典 e-Words</div><div class="blogcard-snippet external-blogcard-snippet">開発環境とは、機器やソフトウェア、システムを開発するために必要な機材やソフトウェアなどの組み合わせ。また、それらを組み合わせて構成された、開発者の作業環境。開発対象により含まれるものは千差万別だが、例えばソフトウェア開発なら、作業に用いるパ...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://e-words.jp/w/%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">e-words.jp</div></div></div></div></a>



<p>VS Codeをエディタとして使用することは、下記のメリットがあります。</p>



<ul class="has-watery-blue-background-color has-background wp-block-list">
<li>入力候補を自動で表示してくれるので、サクサクとコーディング出来る</li>



<li>拡張機能が豊富</li>



<li>OSのターミナルをエディタの中で操作できる</li>



<li>デバック機能がある</li>
</ul>



<h2 class="wp-block-heading"><span id="toc5">必要なソフトウェアをインストールする</span></h2>



<p>ここでは、Docker、VS Codeをインストールする方法についてそれぞれご紹介していきます。</p>



<h3 class="wp-block-heading"><span id="toc6">Dockerをインストールする</span></h3>



<p>Dockerでコンテナを作成するために、まずはDockerが実行できる環境をPCに構築します。まずは、下記の参考サイトと手順に沿ってDockerをインストールします。</p>




<a rel="noopener noreferrer" target="_blank" href="https://qiita.com/bezeklik/items/a6a7335acaec12edda45" title="Docker のインストール手順 - Qiita" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFtYXpvbmF3cy5jb20lMkYwJTJGMTUxNzUlMkZwcm9maWxlLWltYWdlcyUyRjE0NzM2ODM2OTk_aXhsaWI9cmItNC4wLjAmYXI9MSUzQTEmZml0PWNyb3AmbWFzaz1lbGxpcHNlJmJnPUZGRkZGRiZmbT1wbmczMiZzPWRkZmUzNmMwOWZiYTUyOGEyYzJiM2RmM2YwNDM5MTJh%26blend-x%3D120%26blend-y%3D467%26blend-w%3D82%26blend-h%3D82%26blend-mode%3Dnormal%26s%3D162d469081fe549bc7d2edc35e357913?ixlib=rb-4.0.0&#038;w=1200&#038;fm=jpg&#038;mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9RG9ja2VyJTIwJUUzJTgxJUFFJUUzJTgyJUE0JUUzJTgzJUIzJUUzJTgyJUI5JUUzJTgzJTg4JUUzJTgzJUJDJUUzJTgzJUFCJUU2JTg5JThCJUU5JUEwJTg2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LXBhZD0wJnM9NjVmMjVjMzlmMDNhMjlmOWExNjE4OGZjMjlkNGNjZjI&#038;mark-x=120&#038;mark-y=112&#038;blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDBiZXpla2xpayZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1wYWQ9MCZzPWIwZDhhNWM0MjM2ZGY3M2NhZWE3ZDJlYmQ3MDAzN2Iw&#038;blend-x=242&#038;blend-y=480&#038;blend-w=838&#038;blend-h=46&#038;blend-fit=crop&#038;blend-crop=left%2Cbottom&#038;blend-mode=normal&#038;s=d0cfad647f1d3b2edfffec871028b78e" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Docker のインストール手順 - Qiita</div><div class="blogcard-snippet external-blogcard-snippet">Docker Docker のインストール方法や内容が各環境で異なるので、インストールのみに絞った記事をまとめた。 各 OS 環境ではすべてパッケージ管理ソフトを利用してコンソールからインストールすることを想定している。 各 OS 環境の情...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://qiita.com/bezeklik/items/a6a7335acaec12edda45" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">qiita.com</div></div></div></div></a>



<p>さらに、Docker-composeをインストールします。Docker-Composeとは、複数のDockerコンテナを同時に立ち上げるためのツールです。今回はPythonのみのコンテナとなるのでインストール必須ではありませんが、後々アプリを作成することになった場合は、他のコンテナも使用する可能性が高くなるので、この機会に導入しましょう。Docker-composeは下記のサイトの手順でインストールできます。</p>




<a rel="noopener noreferrer" target="_blank" href="https://matsuand.github.io/docs.docker.jp.onthefly/compose/install/" title="Docker Compose のインストール" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fmatsuand.github.io%2Fdocs.docker.jp.onthefly%2Fcompose%2Finstall%2F?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Docker Compose のインストール</div><div class="blogcard-snippet external-blogcard-snippet">Docker Compose のインストール方法。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://matsuand.github.io/docs.docker.jp.onthefly/compose/install/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">matsuand.github.io</div></div></div></div></a>



<h3 class="wp-block-heading"><span id="toc7">VS Codeをインストールする</span></h3>



<p>次に、VS Codeをインストールします。VS Codeは下記の記事を参考にして、ダウンロードとインストールを実施してください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://www.javadrive.jp/vscode/install/index1.html" title="Visual Studio Codeのダウンロードとインストール" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://www.javadrive.jp/vscode/install/img/p1-0.webp" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Visual Studio Codeのダウンロードとインストール</div><div class="blogcard-snippet external-blogcard-snippet">Visual Studio Code のダウンロードと Windows 環境へのインストール方法について解説します。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.javadrive.jp/vscode/install/index1.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.javadrive.jp</div></div></div></div></a>



<h2 class="wp-block-heading"><span id="toc8">Python x Dockerの開発環境を構築する</span></h2>



<p>VSCode上で開発環境を構築する設定をします。VS Codeの基本操作については、以下の記事が参考になるのでぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://zenn.dev/protoout/articles/19-vscode-handson" title="VSCodeの基本操作" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://res.cloudinary.com/zenn/image/upload/s--rNsOK5DP--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:VSCode%25E3%2581%25AE%25E5%259F%25BA%25E6%259C%25AC%25E6%2593%258D%25E4%25BD%259C%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:%25E3%2583%2597%25E3%2583%25AD%25E3%2583%2588%25E3%2582%25A2%25E3%2582%25A6%25E3%2583%2588%25E3%2582%25B9%25E3%2582%25BF%25E3%2582%25B8%25E3%2582%25AA%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyL2U4ODViMTdkMjkuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">VSCodeの基本操作</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://zenn.dev/protoout/articles/19-vscode-handson" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">zenn.dev</div></div></div></div></a>



<p>Python x Dockerの開発環境をVSCode上で構築する具体的な流れについては下記となります。</p>



<ul class="wp-block-list">
<li>拡張機能をインストールする</li>



<li>Pythonのコンテナを作成する</li>



<li>リモートコンテナを立ち上げる</li>
</ul>



<h3 class="wp-block-heading"><span id="toc9">拡張機能をインストールする</span></h3>



<p>VS Codeで必要となる拡張機能をインストールします。拡張機能は、エディタを開いた後で『Ctrl+Shift+x』によって拡張機能の検索画面を開くことが出来ます。最低限必須な拡張機能は下記となりますので、検索して全てインストールしてください。</p>



<ul class="wp-block-list">
<li>Docker  （Dockerのための拡張機能）</li>



<li>Remote-Containers  （VS Code上で Dockerに入るための拡張機能）</li>



<li>YAML  （docker-compose.ymlファイルのための拡張機能）</li>
</ul>



<p>また、必須ではないですが、下記記事の拡張機能のインストールもおすすめです。</p>



<p><a rel="noopener noreferrer" target="_blank" href="https://zenn.dev/ruru/articles/396265425c9740">【参考】VSCodeのおすすめ拡張機能と便利な設定、キーバインド集</a></p>



<h3 class="wp-block-heading"><span id="toc10">Pythonのコンテナを作成する</span></h3>



<p>まず、必要なフォルダとファイルを作成します。『docker』フォルダを作業ディレクトリとして、下記の構成で作成をします。</p>



<pre class="wp-block-code"><code>docker（フォルダ）
├── .devcontainer（フォルダ）
│   ├── devcontainer.json（ファイル）
│   └── docker-compose.yml（ファイル）
├── Python（フォルダ）
│   ├── sample.py（ファイル）
│   ├── Dockerfile（ファイル）
│   └── requirements.txt（ファイル）
└── docker-compose.yml（ファイル）</code></pre>



<p>『docker』フォルダ直下の『docker-compose.yml』を下記のように記述して、『python』という名前のコンテナを起動する設定をします。</p>



<pre class="wp-block-code"><code><span class="badge-purple">docker/docker-compose.yml</span>
version: '3'
services:
  python:
    restart: always
    build:
      context: .
      dockerfile: ./Python/Dockerfile
    container_name: 'python'
    working_dir: '/code'
    tty: true
    volumes:
      - ./Python:/code</code></pre>



<p>ymlファイルの中身については、以下の記事が参考になるのでぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://qiita.com/zembutsu/items/9e9d80e05e36e882caaa" title="Docker Compose - docker-compose.yml リファレンス - Qiita" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFtYXpvbmF3cy5jb20lMkYwJTJGMTMwMDIlMkZwcm9maWxlLWltYWdlcyUyRjE0NzM2ODI2MzE_aXhsaWI9cmItNC4wLjAmYXI9MSUzQTEmZml0PWNyb3AmbWFzaz1lbGxpcHNlJmJnPUZGRkZGRiZmbT1wbmczMiZzPWM0MTMxZjM0YTRmMzQwMTk4NWFkMGQzOGU2MWIzNjAx%26blend-x%3D120%26blend-y%3D462%26blend-w%3D90%26blend-h%3D90%26blend-mode%3Dnormal%26mark64%3DaHR0cHM6Ly9xaWl0YS1vcmdhbml6YXRpb24taW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnMzLWFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20lMkZxaWl0YS1vcmdhbml6YXRpb24taW1hZ2UlMkYxNmJlMjM1NTQ4MjZkOGE4NDRiNzQwMTg3MGM2OTNhOGE2YmUwOWI1JTJGb3JpZ2luYWwuanBnJTNGMTQ4MjgwNzAwNz9peGxpYj1yYi00LjAuMCZ3PTQ0Jmg9NDQmZml0PWNyb3AmbWFzaz1jb3JuZXJzJmNvcm5lci1yYWRpdXM9OCZiZz1GRkZGRkYmYm9yZGVyPTIlMkNGRkZGRkYmZm09cG5nMzImcz03MjI1NTIwY2ViZTkzMTMwNTdiOTA0MTQxMjE3YTg0YQ%26mark-x%3D186%26mark-y%3D515%26mark-w%3D40%26mark-h%3D40%26s%3D8c3df3005fd8677d8464936346af3488?ixlib=rb-4.0.0&#038;w=1200&#038;fm=jpg&#038;mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9RG9ja2VyJTIwQ29tcG9zZSUyMC0lMjBkb2NrZXItY29tcG9zZS55bWwlMjAlRTMlODMlQUElRTMlODMlOTUlRTMlODIlQTElRTMlODMlQUMlRTMlODMlQjMlRTMlODIlQjkmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzFFMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtcGFkPTAmcz1iNTg1NDkxOGU4NzEwMTIxYmUxNDYyMWY0M2U1ZmRmMA&#038;mark-x=120&#038;mark-y=112&#038;blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDB6ZW1idXRzdSZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1wYWQ9MCZzPTdkY2MyMTBlNWQzZjgxM2E5NjMzMTIzNjIyN2Y3YWY2&#038;blend-x=242&#038;blend-y=454&#038;blend-w=838&#038;blend-h=46&#038;blend-fit=crop&#038;blend-crop=left%2Cbottom&#038;blend-mode=normal&#038;txt64=44GV44GP44KJ44Kk44Oz44K_44O844ON44OD44OI5qCq5byP5Lya56S-&#038;txt-x=242&#038;txt-y=539&#038;txt-width=838&#038;txt-clip=end%2Cellipsis&#038;txt-color=%231E2121&#038;txt-font=Hiragino%20Sans%20W6&#038;txt-size=28&#038;s=8e46d172077fd5d6a62d4d4b4c9e8d8f" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Docker Compose - docker-compose.yml リファレンス - Qiita</div><div class="blogcard-snippet external-blogcard-snippet">Docker Compose - docker-compose.yml リファレンス 原文：Compose file version 3 reference docker-comp...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://qiita.com/zembutsu/items/9e9d80e05e36e882caaa" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">qiita.com</div></div></div></div></a>



<p>次に、コンテナのイメージを作成する『Dockerfile』を下記のように記述します。</p>



<pre class="wp-block-code"><code><span class="badge-purple">docker/Python/Dockerfile</span>
FROM python:3
USER root

RUN apt-get update
RUN apt-get -y install locales &amp;&amp; \
    localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
RUN apt-get install -y vim less

ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja
ENV LC_ALL ja_JP.UTF-8
ENV TZ JST-9
ENV TERM xterm

RUN mkdir -p /code
COPY ./Python/requirements.txt /code
WORKDIR /code

RUN pip install --upgrade pip
RUN pip install --upgrade setuptools
RUN pip install -r requirements.txt</code></pre>



<p>DockerファイルやDockerのイメージについては、以下の記事が参考になるのでぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://qiita.com/zembutsu/items/9e9d80e05e36e882caaa" title="Docker Compose - docker-compose.yml リファレンス - Qiita" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFtYXpvbmF3cy5jb20lMkYwJTJGMTMwMDIlMkZwcm9maWxlLWltYWdlcyUyRjE0NzM2ODI2MzE_aXhsaWI9cmItNC4wLjAmYXI9MSUzQTEmZml0PWNyb3AmbWFzaz1lbGxpcHNlJmJnPUZGRkZGRiZmbT1wbmczMiZzPWM0MTMxZjM0YTRmMzQwMTk4NWFkMGQzOGU2MWIzNjAx%26blend-x%3D120%26blend-y%3D462%26blend-w%3D90%26blend-h%3D90%26blend-mode%3Dnormal%26mark64%3DaHR0cHM6Ly9xaWl0YS1vcmdhbml6YXRpb24taW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnMzLWFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20lMkZxaWl0YS1vcmdhbml6YXRpb24taW1hZ2UlMkYxNmJlMjM1NTQ4MjZkOGE4NDRiNzQwMTg3MGM2OTNhOGE2YmUwOWI1JTJGb3JpZ2luYWwuanBnJTNGMTQ4MjgwNzAwNz9peGxpYj1yYi00LjAuMCZ3PTQ0Jmg9NDQmZml0PWNyb3AmbWFzaz1jb3JuZXJzJmNvcm5lci1yYWRpdXM9OCZiZz1GRkZGRkYmYm9yZGVyPTIlMkNGRkZGRkYmZm09cG5nMzImcz03MjI1NTIwY2ViZTkzMTMwNTdiOTA0MTQxMjE3YTg0YQ%26mark-x%3D186%26mark-y%3D515%26mark-w%3D40%26mark-h%3D40%26s%3D8c3df3005fd8677d8464936346af3488?ixlib=rb-4.0.0&#038;w=1200&#038;fm=jpg&#038;mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9RG9ja2VyJTIwQ29tcG9zZSUyMC0lMjBkb2NrZXItY29tcG9zZS55bWwlMjAlRTMlODMlQUElRTMlODMlOTUlRTMlODIlQTElRTMlODMlQUMlRTMlODMlQjMlRTMlODIlQjkmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzFFMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtcGFkPTAmcz1iNTg1NDkxOGU4NzEwMTIxYmUxNDYyMWY0M2U1ZmRmMA&#038;mark-x=120&#038;mark-y=112&#038;blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDB6ZW1idXRzdSZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1wYWQ9MCZzPTdkY2MyMTBlNWQzZjgxM2E5NjMzMTIzNjIyN2Y3YWY2&#038;blend-x=242&#038;blend-y=454&#038;blend-w=838&#038;blend-h=46&#038;blend-fit=crop&#038;blend-crop=left%2Cbottom&#038;blend-mode=normal&#038;txt64=44GV44GP44KJ44Kk44Oz44K_44O844ON44OD44OI5qCq5byP5Lya56S-&#038;txt-x=242&#038;txt-y=539&#038;txt-width=838&#038;txt-clip=end%2Cellipsis&#038;txt-color=%231E2121&#038;txt-font=Hiragino%20Sans%20W6&#038;txt-size=28&#038;s=8e46d172077fd5d6a62d4d4b4c9e8d8f" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Docker Compose - docker-compose.yml リファレンス - Qiita</div><div class="blogcard-snippet external-blogcard-snippet">Docker Compose - docker-compose.yml リファレンス 原文：Compose file version 3 reference docker-comp...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://qiita.com/zembutsu/items/9e9d80e05e36e882caaa" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">qiita.com</div></div></div></div></a>




<a rel="noopener noreferrer" target="_blank" href="https://and-engineer.com/articles/YaSPjRIAACAAkhMI" title="https://and-engineer.com/articles/YaSPjRIAACAAkhMI" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fand-engineer.com%2Farticles%2FYaSPjRIAACAAkhMI?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">https://and-engineer.com/articles/YaSPjRIAACAAkhMI</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://and-engineer.com/articles/YaSPjRIAACAAkhMI" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">and-engineer.com</div></div></div></div></a>



<p>Pythonで使用するライブラリは、『requirements.txt』の中に記述して設定します。例えば、『requests』と『beautifulsoup4』をライブラリとしてインストールする場合は、下記のように記述します。</p>



<pre class="wp-block-code"><code><span class="badge-purple">docker/Python/requirements.txt</span>
requests
beautifulsoup4</code></pre>



<p>次に、リモートコンテナでデバッグを実行するための設定ファイルを作成していきます。『.devcontainer』フォルダの中の、『devcontainer.json』と『docker-compose.yml』に対して、下記のように記述していきます。</p>



<pre class="wp-block-code"><code><span class="badge-purple">docker/.devcontainer/devcontainer.json</span>
{
    "name": "Existing Docker Compose (Extend)",
    "dockerComposeFile": &#91;
	"../docker-compose.yml",
	"docker-compose.yml"
    ],
    "service": "python",
    "workspaceFolder": "/code",
    "settings": {
        "terminal.integrated.shell.linux": "/bin/bash"
    },
    "extensions": &#91;
        "ms-azuretools.vscode-docker",
        "ms-python.python"
    ],
    "shutdownAction": "stopCompose",
}</code></pre>



<pre class="wp-block-code"><code><span class="badge-purple">docker/.devcontainer/docker-compose.yml</span>
version: '3'
services:
  python:
    volumes:
      - .:/workspace:cached
    command: /bin/sh -c "while sleep 1000; do :; done"</code></pre>



<p>これで、環境構築に必要なファイルは作成完了です。Pythonのファイルは『Python』フォルダに作成していきます。今回は例として、『sample.py』を下記のように作成します。</p>



<pre class="wp-block-code"><code><span class="badge-purple">docker/Python/sample.py</span>
print('hello world 1')
print('hello world 2')</code></pre>



<h3 class="wp-block-heading"><span id="toc11">リモートコンテナを立ち上げる</span></h3>



<p>VSCodeのターミナル（『Ctrl+Shiht+0』で開く）から、以下のコマンドを実行して、dockerイメージをビルドした後、Pythonコンテナを起動させます。</p>



<pre class="wp-block-code"><code><span class="badge-purple">ターミナル</span>
$ docker-compose build
$ docker-compose up -d</code></pre>



<p>コンテナを起動させた後、VSCodeの画面左下にある下記画像のアイコンをクリックします。Remote-Containerのメニューから「Open Folder in Container&#8230;」を選択し、作業ディレクトリの「Docker」のフォルダを選択すると、「.devcontainer」での設定により、『python』コンテナの中に入ります。</p>



<figure class="wp-block-image size-large"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/07184212/vscode_open_remote_window.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/07184212/vscode_open_remote_window.png" alt="VS Codeでリモートコンテナを開く"/></a></figure>



<p>コンテナに入った後で、『sample.py』を開くと、『F5』コマンドでデバッグ実行可能です。ここまでうまくいっていれば、ターミナルに以下が出力されます。</p>



<pre class="wp-block-code"><code><span class="badge-purple">ターミナル</span>
$ hello world 1
$ hello world 2</code></pre>



<p>また、一時停止した表の左端をクリックしブレイクポイントを設定すると、以下画像のように設定した行で一時停止してデバッグできることを確認できます。またこの環境設定で、リモートコンテナ上で、pythonファイルを作成したり、更新したりすることも可能です。</p>



<figure class="wp-block-image size-large"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/07193155/VSCodeBrakePoint.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/07193155/VSCodeBrakePoint.png" alt="VS Codeのデバッグ画面"/></a></figure>



<h2 class="wp-block-heading"><span id="toc12">さいごに</span></h2>



<p>これで、Python x Dockerの開発環境をVS Codeで構築する方法についての説明を終わります。Dockerを用いたPythonの開発環境を活用して、開発を効率化していきましょう！</p>
]]></content:encoded>
					
					<wfw:commentRss>https://goal-path.com/info/programing-vscode-docker-python/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
