How To Install Tensormsa Docker-compose version
Tensormsa를 구성하기 위해선 Django, Postgres, Nginx, RabbitMQ등 여러 OpenSource 프로그램이 필요하다. 각각의 Official Docker를 Compose 하여 Tensormsa를 실행하는 방법을 안내한다.
Prerequisite
Tensormsa를 실행하기 위해서는 Docker-compose환경이 필요하다. 설치방법은 Docker Official site를 참고한다
OS : ubuntu 16.04
Docker ce lastest version(https://docs.docker.com/engine/installation/)
Docker-comcopse 1.16+(https://docs.docker.com/compose/install/)
Git clone
Tensormsa를 실행하기 위해서 git을 clone한다. Docker구성을 위한 파일 뿐만 아니라 Tensormsa를 구성하는 소스도 함께 받기 위해서 –recursive명령어를 사용한다.
git clone –recursive https://github.com/TensorMSA/tensormsa_docker.git
Make docker volume for postgresqldb
Docker Conatainer가 지워지더라도 DB data를 유지하기 위해서 Docker volume을 생성한다.
docker volume create pg_data
Docker volume 생성후에 정상적인지 확인한다.
docker volume inspect pg_data
Change DB Connections
Django의 DB Connection을 변경한다.
Locaion : /docker_compose_cpu/tensormsa/hoyai/settings.py
vi settings.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'postgres', 'USER': 'postgres', 'PASSWORD': 'postgres', 'HOST': 'db', 'PORT': '5432', } }
Check enviroment parameters and passwords
tensormsa의 여러 변수(posgrest user, postgres password, vnc password 등)는 .env에 정리 되어 있다.
Locaion : /docker_compose_cpu/.env
Docker-compose up
기본 환경 설정을 끝냈으니 docker-compose를 실행시켜 보자
docker-compose up
혹씨 Demon으로 실행시키고 싶으면 -d 옵션을 사용한다.
docker-compose up -d
Django make static files and migrate
django의 static파일을 수집하기 위한 폴더와, Table을 생성시키기위한 스크립트를 실행한다.
docker-compose run web python /home/dev/tensormsa/manage.py collectstatic
docker-compose run web python /home/dev/tensormsa/manage.py makemigrations
docker-compose run web python /home/dev/tensormsa/manage.py migrate
Django Admin 확인
Django admin 페이지를 접속해본다. 화면이 깨지지 않으면 static파일의 설정이 오류없이 완료 된것이다.
Celery flower확인
비동기 task를 실행시켜주는 celery 를 확인할수 있는 celery flower를 확인한다.
기본적으로 celery를 1개가 실행되어 있다.
<ip:5555>로 확인해보자
여러 task를 수행하기 위해 celery를 동적으로 여러개를 늘릴수 있다. 예제로 3개로 늘려보자
docker-compose scale celery=3
다시 celery flower<ip:5555> 확인해보자.
vnc 확인
개발환경을 위한 vnc를 5901 port로 연결해 놓았다. vnc를 확인해보자