Python3.7の環境をDocker for Macで構築
1. Docker for Macのインストール
Install Docker for Mac | Docker Documentation
Docker IDの登録もしてください。
2. docker-composeインストール
$ 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
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に書かれたライブラリがインストールされる。
今はほとんど書いてないが、後々必要なライブラリが増えてくるかなと思いこの形に。
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 ドキュメント
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. 確認
コンテナが立ち上がったか確認
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
コンテナに入ってみる
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と接続します。
するとProject InterpreterにDockerコンテナが追加されてると思うので、それを設定してApplyするだけです。
2. PyCharmからコンテナに接続してみる
あとは試しにスクリプトを実行してみたりしてください。
root@e2b390cf63e4:/var/www/html# python hello.py
Hello
まとめ
- DockerでPython3.7の実行環境を構築した
- Dockerコンテナ内の実行環境をPyCharmのインタプリタとして設定した
- デバッグなどがDockarコンテナ内の環境で実行できる