Skip to content

dnonhill/dcloud

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ptt-cloudform

Develop without docker compose

setup python virtualenv

brew install pyenv

pyenv install 3.8.4

brew install pyenv pyenv-virtualenv

pyenv virtualenv 3.8.4 cloudform

setup postgres

docker run \
-d \
--name postgres \
-p 5432:5432 \
-v `pwd`/data/postgres:/var/lib/postgresql/data \
-e POSTGRES_DB=cloudform \
-e POSTGRES_PASSWORD=password \
postgres:11.4

Run backend

cd dcloud/cloudform
pyenv local cloudform

install dependency

pip install -r requirements-dev.txt

run migrate

POSTGRES_HOST=localhost python manage.py migrate

load init data (user, price)

POSTGRES_HOST=localhost python manage.py loaddata initial_fixtures/*.yaml

start api

POSTGRES_HOST=localhost DEBUG_MODE=true python manage.py runserver

Run Frontend

cd cloudform/frontend
yarn start

🐳 Run frontend and backend with docker compose

cd cloudform
docker-compose up

load data

docker exec -it dcloud_api bash
python manage.py loaddata initial_fixtures/*.yaml

create superuser

docker exec -it dcloud_api bash
python manage.py createsuperuser

run unit test api

docker exec -it dcloud_api bash
pytest

Worker

dev env

export API_URL="http://localhost:8000"
export CELERY_USERNAME="<superuser_username>"
export CELERY_PASSWORD="<superuser_password>"
export VCENTER_URL="https://vcenter.site2.opsta.in.th"
export VCENTER_USERNAME="margomusto@site2.opsta.in.th"
export VCENTER_PASSWORD="LU8mUj72ucI0xZTEf19f"

run redis container

docker run -d -p 6379:6379 redis
cd dcloud/cloudform
POSTGRES_HOST=localhost python manage.py migrate # make sure take up to date

start schedulers

celery -A cloudform beat -l INFO --scheduler django_celery_beat.schedulers:DatabaseScheduler

start worker

celery -A cloudform worker --loglevel=INFO

monitor queue with flower

flower -A cloudform --port=5555

start kibana and elasticsearch

docker run -d -p 9200:9200  -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.9.1

docker run -d --link <container_id>:elasticsearch -p 5601:5601 docker.elastic.co/kibana/kibana:7.9.2

🐳 Run Worker with docker compose

start elasticsearch kibana and redis

 cd cloudform
 docker-compose -f docker-compose-billing up

start api

cd cloudform
docker-compose up

start schedulers

docker exec -it dcloud_api bash

export API_URL="http://localhost:8000"
export CELERY_USERNAME="<superuser_username>"
export CELERY_PASSWORD="<superuser_password>"

celery -A cloudform beat -l INFO --scheduler django_celery_beat.schedulers:DatabaseScheduler

start worker

docker exec -it dcloud_api bash

export API_URL="http://localhost:8000"
export CELERY_USERNAME="<superuser_username>"
export CELERY_PASSWORD="<superuser_password>"

celery -A cloudform worker --loglevel=INFO

Other

command create migrations when update field model that should create migrations and run migrate db

python manage.py makemigrations

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published