Python
Docker
Pycharm

PyCharm + Docker + Python3.7の開発環境構築メモ


Python3.7の環境をDocker for Macで構築


1. Docker for Macのインストール

Install Docker for Mac | Docker Documentation

Docker IDの登録もしてください。


2. docker-composeインストール


terminal

$ brew install docker-compose



3. ディレクトリ構成

app

├── docker

│   ├── Dockerfile

│   └── docker-compose.yml

├── hello.py (hello world用のスクリプト)

└── requirements.txt


4. docker-compose.ymlの作成

公式のpython3.7イメージを使用します。

DockerHub python


docker-compose.yml

version: '3'

services:
app:
build:
context: ../
dockerfile: ./docker/Dockerfile
image: python:3.7
volumes:
- '../:/var/www/html'
container_name: python
tty: true
working_dir: '/var/www/html'

contextやvolumesなどはディレクトリ構成に合わせて書きます。


5. Dockerfileの作成

dockerイメージをbuildする時にpip installでrequirements.txtに書かれたライブラリがインストールされる。

今はほとんど書いてないが、後々必要なライブラリが増えてくるかなと思いこの形に。

スクリーンショット 2018-10-26 14.29.21.png


Dockerfile

FROM python:3.7

ADD . /var/www/html
WORKDIR /var/www/html
RUN pip install -r ./requirements.txt


6. ビルド

docker-compose up コマンドについて

up — Docker-docs-ja 17.06.Beta ドキュメント


terminal

tomitz:~/workspace/app/docker

$ docker-compose up -d --build
Building app
Step 1/4 : FROM python:3.7
3.7: Pulling from library/python
bc9ab73e5b14: Pull complete
193a6306c92a: Pull complete
e5c3f8c317dc: Pull complete
a587a86c9dcb: Pull complete
72744d0a318b: Pull complete
3493e487c18d: Pull complete
a89e0510fd87: Pull complete
2100d277cd6f: Pull complete
...省略


7. 確認

コンテナが立ち上がったか確認


terminal

tomitz:~/workspace/app/docker

$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e2b390cf63e4 python:3.7 "python3" 4 minutes ago Up 4 minutes python

コンテナに入ってみる


terminal

tomitz:~/workspace/app/docker

$ docker exec -it python /bin/bash
root@e2b390cf63e4:/var/www/html#


PyCharmのリモートインタプリタにDockerのコンテナを設定


1.Project Interpreterの新規作成

PyCharm > Preference > Build, Execution, Deployment > Docker

からDocker for Macと接続します。

スクリーンショット 2018-10-26 14.29.21.png

するとProject InterpreterにDockerコンテナが追加されてると思うので、それを設定してApplyするだけです。

スクリーンショット 2018-10-26 14.32.12.png


2. PyCharmからコンテナに接続してみる

エディタに戻ってexecしてみます。

スクリーンショット 2018-10-26 14.34.53.png

createを押すとコマンド入力画面が出てきます。

スクリーンショット 2018-10-26 14.36.07.png

こんな感じです。

スクリーンショット 2018-10-26 14.36.22.png

あとは試しにスクリプトを実行してみたりしてください。


terminal

root@e2b390cf63e4:/var/www/html# python hello.py

Hello


まとめ


  • DockerでPython3.7の実行環境を構築した

  • Dockerコンテナ内の実行環境をPyCharmのインタプリタとして設定した

  • デバッグなどがDockarコンテナ内の環境で実行できる