はじめに
pythonを始めて1年経ちますが、Pythonの環境構築はまだ慣れません。
特にパッケージマネージャは数ある言語の中でも最弱のように感じます。
なぜかmacで開発環境を構築しようとするとなぜか OpenSSL がらみのエラーが発生していました。
そんな悩みの解決に開発環境をdocker上に構築する方法をまとめました。
ソースは Github にあげてあります。
ディレクトリ構成
├── pyproject.toml
└── docker
└── Dockerfile
└── docker-compose.yml
└── mysite/*
ファイル
メインどころのファイルのみ記述します。
Djangoが作成したファイルは置いておきます。
pyproject.toml
[tool.poetry]
name = "python-dev-on-docker"
version = "0.1.0"
description = ""
authors = ["va034600"]
[tool.poetry.dependencies]
python = "^3.6"
django = "^3.1.1"
[tool.poetry.dev-dependencies]
[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"
Dockerfile
FROM python:3.6.8
WORKDIR /usr/src/app
ENV POETRY_VERSION=1.0.10 \
PATH="/root/.poetry/bin:$PATH"
RUN curl -sSL https://raw.githubusercontent.com/sdispater/poetry/${POETRY_VERSION}/get-poetry.py | python && \
poetry config virtualenvs.create false
COPY ./pyproject.toml /usr/src/app/pyproject.toml
RUN poetry install
CMD tail -f /dev/null
docker-compose.yml
version: '3.5'
services:
app:
build:
context: ../
dockerfile: ./docker/Dockerfile
working_dir: /usr/src/app/mysite
command: python manage.py runserver 0.0.0.0:8000
volumes:
- ../mysite:/usr/src/app/mysite
ports:
- "8000:8000"
consoleからdocker-composeを実行
とりあえず、Pycharmなしの docker-compose up
で動作を確認します。
$ cd docker
$ docker-compose up -d
$ curl http://127.0.0.1:8000/
$ docker-compose down
hello1
Pycharm でデバッグ
Pycharnの設定
Python Interpreter はdocker-composeで追加する
プロジェクトのInterpreterをdocker-composeにする
Configuration で runserverを作成する
ポイントは パラメータで runserver 0.0.0.0:8000
にすること
Pycharm でデバッグ実行する
これでブレークポイントも止まります。
ファイルを修正してdocker-composeの再起動なく反映もされます。
終わりに
これでホスト側がすっきり。
簡単に開発環境が構築できます。