7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

面倒な環境構築が一瞬で終わる。そう、DockerとVSCodeならね

Last updated at Posted at 2019-09-02

目標

DockerとVSCodeで超簡単にPythonの開発環境を作成してみる。

どんな人向け??

  • Dockerが好きな人
  • VSCodeが好きで好きでたまらない人
  • Pythonの環境構築を楽にやってみたい人

どこまでやるのか

  1. docker-composeでコンテナを立ち上げる
  2. 立ち上げたコンテナ内にVSCodeのプラグインRemote - Containersで接続
  3. コンテナ内でpythonのスクリプトを実行しておしまい

ファイル構成

.
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
└── src
    ├── hello.py
    └── student
        ├── student-mat.csv
        ├── student-merge.R
        ├── student-por.csv
        └── student.txt

各種ファイル

Dockerfiledocker-compose.ymlは以下のようにしています。

詳しくは、Dockerを使って機械学習の環境を作ろうとした話に書いているので参考にしてください。

FROM python:3.7.4
RUN apt-get update && apt-get install -y \
    python3 \
    python3-pip \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/* \
    && pip install --upgrade pip
COPY . ${pwd}/
RUN pip install -r requirements.txt
version: "3"
services:
  app:
    container_name: "python_sample"
    build:
      context: .
      dockerfile: ./Dockerfile
    ports:
      - 80:80
    tty: true
    volumes:
      - $PWD/src:/var/src

requirements.txtは機械学習で使いそうなライブラリを適当にピックアップしてます。

今回は、pandasとmatplotlibを使用してcsv(src/student/student-mat.csv)を読み込んで
データのグラフを保存することにします。

requirements.txt
numpy
scipy
pandas
matplotlib
seaborn
python=sample.py
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt

# csvの読み込み
sample_data_set = pd.read_csv('student/student-mat.csv', sep=';')

# グラフ化してみる
plt.hist(sample_data_set['age'], bins=[15,16,17,18,19,20,21,22])
# 縦軸と横軸に名前を
plt.xlabel('age')
plt.ylabel('count')
plt.savefig('tmp.png')

コンテナ立ち上げ

ファイルが準備できたら、コンテナを立ち上げましょう
※ 初回のコンテナ立ち上げ時には、少し時間かかります。

$ docker-compose up -d
Creating network "python_sample_default" with the default driver
Creating python_sample ... done

コンテナに接続

コンテナが立ち上がったので以下のコマンドで接続っと....

$ docker exec -it ee4cf2 /bin/sh -c "[ -e /bin/bash ] && /bin/bash || /bin/sh"

このコマンド。。。打つのも眺めるのも嫌じゃないですか???

やってることは分かるけど、コンテナの中でもVSCode使いたいな〜使いたいなぁ〜。。。。

そこで!!!

Remote - Containersです!!

実際に動かしてみましょう。

プラグインをインストールしたら

下記の画像のの部分をクリックしましょう

Remote-Container:Attach to Running Container...を選択します

そして、コンテナ名が表示されるので自分の接続したいコンテナを選択します

スクリーンショット 2019-09-02 20.57.00.png

接続が完了すると、下記の画像のよう現在接続しているコンテナの情報がに表示されます

2でコンテナ内のフォルダを開きます

3でコンテナ内のフォルダ構成が追えるので、対象のフォルダを探して開きましょう

スクリーンショット 2019-09-02 20.59.31.png

フォルダが開き終わったら、VSCodeのTerminalを開いてPythonのスクリプトを実行です!
(TerminalはDockerコンテナで開いた扱いになってるので、そのまま実行できます)

スクリーンショット 2019-09-02 21.01.51.png

まとめ

DockerとVSCodeでとても簡単に開発環境が構築できました。

後半は少し駆け足気味だったかも。。

ホスト環境を汚さずに、自分の好きなエディタで開発できるのは、とても楽しいことだと思います。

他にも、golangとかもimageを取得してコンテナ立ち上げれば同じように直ぐに環境が手に入ります。

ではでは、お読みいただきありがとうございました!!

質問や訂正などがありましたら、よろしくお願いします。。

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?