가장 빨리 만나는 Docker 18장 - 2. Django Dockerfile 작성하기
저작권 안내
- 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
- 책 또는 웹사이트의 내용을 발췌, 요약하여 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.
Docker로 Django 애플리케이션 구축하기
이재홍 http://www.pyrasis.com 2014.08.02 ~ 2014.09.20
Django Dockerfile 작성하기
Django 설치가 끝났으니 예제 Django 애플리케이션을 생성합니다.
~$ django-admin.py startproject exampleapp
exampleapp 디렉터리가 생성되었습니다. 앞에 설치한 Oracle 인스턴트 클라이언트 rpm 파일을 exampleapp 디렉터리 아래로 이동합니다. Django 이미지에도 Oracle 인스턴트 클라이언트를 설치해야 하므로 rpm 파일이 필요합니다.
$ mv oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm exampleapp/
$ mv oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm exampleapp/
exampleapp/exampleapp 디렉터리 아래에 있는 settings.py 파일을 열고 다음과 같이 수정합니다.
~/exampleapp/exampleapp/settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.oracle',
'NAME': 'XE',
'USER': 'system',
'PASSWORD': os.getenv('DB_ENV_ORACLE_PASSWORD'),
'HOST': os.getenv('ORACLE_HOST') or 'db',
'PORT': '1521',
}
}
- ENGINE: Oracle을 사용하기 위해 django.db.backends.oracle을 설정합니다.
- NAME: 데이터베이스 이름입니다. XE를 설정합니다.
- USER: system을 설정합니다.
- PASSWORD: 환경 변수의 DB_ENV_ORACLE_PASSWORD를 사용하도록 설정합니다.
docker run
명령의--link
옵션으로 컨테이너를 연결했을 때 연결한 컨테이너의 환경 변수는<별칭>_ENV_<환경 변수>
형식입니다. 우리는 컨테이너를 연결할 때 별칭을 db로 하고, 데이터베이스 컨테이너에서 환경 변수는 ORACLE_PASSWORD를 사용할 것이기 때문에 DB_ENV_ORACLE _PASSWORD가 됩니다. - HOST: or 연산자를 이용하여 개발 환경과 데이터베이스 컨테이너에서 사용할 데이터베이스 호스트를 각각 설정합니다. 개발을 할 때는 환경 변수의 ORACLE_HOST에 데이터베이스 컨테이너의 IP 주소를 설정합니다. 그리고 데이터베이스 컨테이너를 연결할 때는 별칭을 db로 할 것이므로 db로 설정합니다.
- PORT: 1521번을 설정합니다.