파이참에서 도커 연결
회사에 젊은 피가 수혈되었다.
며칠 전 젊은 동료께서 “도커에 파이참 연결해서 코딩하고 있어요.” 라고 하시는데, 난 이거.. 전에 시도하다 잘 안되서 중단했었는데? 그래서, 여태 virtualenv 만 쓰고 있었는데? 한밤중에 윈도우즈 시스템 폴더에 DLL들을 하나씩 까보던 아이는 어디로 갔단 말인가.
먼 옛날을 생각하며, 다시한번 시도했고 성공했다. 이제 인터프리터는 서버랑 동일하게 도커에서 실행하고, 디버깅은 파이참에서 해주고 있다. 역시 이런거 할 때가 제일 재미있다.
작업 내용을 정리해둔다. 아래에 소스들은 깃헙에 있다.
1. 장고앱을 만든다.
django-admin startproject remote_pycharm_sample
2. 도커 설정 파일들.
docker-compose.yml 파일
version: '2'
services:
mysqltest:
image: mysql:5.6
command: mysqld --character-set-server=utf8mb4
environment:
- MYSQL_ROOT_PASSWORD=rootpw
- MYSQL_DATABASE=dtestapp
- MYSQL_USER=dtestuser
- MYSQL_PASSWORD=dtestpw
ports:
- "3306:3306"
remote_pycharm_sample:
build:
context: .
dockerfile: compose/Dockerfile
command: ['compose/./wait-mysql.sh', 'compose/./gunicorn.sh']
environment:
- MYSQL_ROOT_PASSWORD=rootpw
- MYSQL_DATABASE=dtestapp
- MYSQL_USER=dtestuser
- MYSQL_PASSWORD=dtestpw
- DJANGO_SETTINGS_MODULE=remote_pycharm_sample.settings
volumes:
- .:/proj
ports:
- "8000:8000"
depends_on:
- mysqltest
links:
- mysqltest
compose/Dockerfile 은 간단하게 만들었다
FROM python:3.6
ENV PYTHONUNBUFFERED 1
COPY ./requirements.txt /requirements.txt
RUN pip install -r /requirements.txt \
&& groupadd -r django \
&& useradd -r -g django django
WORKDIR /proj
3. 아직은 처음부터 도커로 프로젝트를 생성할 수는 없다.
링크 먼저 로컬의 인터프리터로 장고 프로젝트를 생성한 다음, 메뉴에서 PyCharm -> Proference -> Project Interpreter 를 선택하고, 오른쪽 끝의 “Add…” 를 클릭한다.
4. Docker Compose 에서 docker-compose.yml 파일을 선택한다.
5. 이제 실행 설정.
6. Host 를 0.0.0.0 으로 지정해야 한다.
7. 이제 실행해보면, 파이참에서 도커에 리모트로 디버깅이 된다.
이상.