Skip to content

Commit

Permalink
OpenConceptLab/ocl_issues#286 Deploy oclapi2 to QA
Browse files Browse the repository at this point in the history
  • Loading branch information
rkorytkowski committed Aug 7, 2020
1 parent d1a899e commit 6d91c00
Show file tree
Hide file tree
Showing 9 changed files with 313 additions and 85 deletions.
7 changes: 3 additions & 4 deletions Dockerfile
@@ -1,10 +1,9 @@
FROM python:3.8.3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
ADD startup.sh /code/
RUN apt-get update --fix-missing
RUN apt-get install -y software-properties-common
WORKDIR /code
RUN pip install -r requirements.txt
ADD . /code/
EXPOSE 8000
CMD bash startup.sh
5 changes: 3 additions & 2 deletions README.md
Expand Up @@ -3,8 +3,9 @@ The new and improved OCL terminology service v2


#### Dev Setup
1. `docker-compose up -d`
2. Go to localhost:7000 to benefit.
1. `sysctl -w vm.max_map_count=262144` #required by Elasticsearch
2. `docker-compose up -d`
3. Go to http://localhost:8000 to benefit.

#### Run Checks
1. Pylint (pep8) --- `docker exec -it oclapi2 pylint -j2 core`
Expand Down
2 changes: 1 addition & 1 deletion core/common/management/commands/import_lookup_values.py
Expand Up @@ -26,7 +26,7 @@ def handle(self, *args, **options):
),
dict(
source=sources['Locales'],
file=os.path.join(current_path, "../../../lookup_fixtures/Locales.json")
file=os.path.join(current_path, "../../../lookup_fixtures/locales.json")
),
dict(
source=sources['Datatypes'],
Expand Down
6 changes: 3 additions & 3 deletions core/settings.py
Expand Up @@ -104,15 +104,15 @@
'ENGINE': 'django.db.backends.postgresql',
'NAME': os.environ.get('DB', 'postgres'),
'USER': 'postgres',
'PASSWORD': os.environ.get('DB_PASSWORD', 'password'),
'HOST': os.environ.get('DB_HOST', '127.0.0.1'),
'PASSWORD': os.environ.get('DB_PASSWORD', 'Postgres123'),
'HOST': os.environ.get('DB_HOST', 'db'),
'PORT': os.environ.get('DB_PORT', 5432),
}
}

ELASTICSEARCH_DSL = {
'default': {
'hosts': os.environ.get('ES_URL', 'host.docker.internal:9200')
'hosts': [os.environ.get('ES_HOST', 'es:9200'), 'es1:9200']
},
}

Expand Down
36 changes: 36 additions & 0 deletions docker-compose.override.yml
@@ -0,0 +1,36 @@
version: '3'

services:
db:
ports:
- 5432:5432
restart: "no"
redis:
ports:
- 6379:6379
restart: "no"
api:
build: .
ports:
- 8000:8000
volumes:
- .:/code
restart: "no"
celery:
build: .
volumes:
- .:/code
restart: "no"
flower:
build: .
volumes:
- .:/code
ports:
- 5555:5555
restart: "no"
es:
ports:
- 9200:9200
restart: "no"
es1:
restart: "no"
117 changes: 63 additions & 54 deletions docker-compose.yml
Expand Up @@ -2,90 +2,99 @@ version: '3'

services:
db:
image: postgres:12.3
volumes:
- postgres-data:/data/db
restart: always
container_name: oclapi2_db
ports:
- "5433:5432"
image: postgres:12.3-alpine
restart: "always"
environment:
- POSTGRES_PASSWORD=password
- POSTGRES_HOST_AUTH_METHOD=trust
- POSTGRES_PASSWORD=${DB_PASSWORD-Postgres123}
healthcheck:
test: "pg_isready -U postgres"
redis:
image: redis:latest
container_name: redis
restart: always
ports:
- "6379:6379"
image: redis:6.0.6-alpine
restart: "always"
healthcheck:
test: "exit 0"
test: "redis-cli ping"
api:
build: .
container_name: oclapi2
restart: always
volumes:
- .:/code
command: sh -c ./startup.sh
image: openconceptlab/oclapi2:${ENVIRONMENT-production}
restart: "always"
command: sh -c "./wait-for-it.sh db:5432 -t 0 -- ./wait-for-it.sh es:9200 -t 0 -- ./startup.sh"
ports:
- "8000:8000"
- 8000:8000
depends_on:
- db
- celery
- redis
- es
- es1
environment:
- REDIS_HOST=redis
- DB_HOST=db
- ENV=dev
- DB_PASSWORD=${DB_PASSWORD-Postgres123}
- ENVIRONMENT=${ENVIRONMENT-production}
- SECRET_KEY
- SENTRY_DSN_KEY
- EMAIL_HOST_PASSWORD
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_STORAGE_BUCKET_NAME
healthcheck:
test: "curl -f http://localhost:8000/admin"
celery:
build: .
container_name: celery
image: openconceptlab/oclapi2:${ENVIRONMENT-production}
command: sh -c ./start_celery_worker.sh
links:
- db
- redis
restart: always
volumes:
- .:/code
depends_on:
- redis
environment:
- REDIS_HOST=redis
- DB_HOST=db
- ENV=dev
restart: "always"
healthcheck:
test: "celery inspect ping -A core.celery"
flower:
build: .
container_name: flower
command: sh -c ./start_flower.sh
volumes:
- .:/code
image: openconceptlab/oclapi2:${ENVIRONMENT-production}
command: sh -c "./wait-for-it.sh redis:6379 -t 0 --./start_flower.sh"
ports:
- "5555:5555"
- 5555:5555
depends_on:
- celery
links:
- redis
environment:
- C_FORCE_ROOT=1
- SECRET_KEY
restart: always
- FLOWER_USER=${FLOWER_USER-flower}
- FLOWER_PASSWORD=${FLOWER_PASSWORD-Flower123}
restart: "always"
healthcheck:
test: "exit 0"
test: "curl -u ${FLOWER_USER-flower}:${FLOWER_PASSWORD-Flower123} -f http://localhost:5555/"
es:
image: docker.elastic.co/elasticsearch/elasticsearch:7.8.1
container_name: es
image: elasticsearch:7.8.1
environment:
- discovery.type=single-node
ports:
- 9200:9200
- 9300:9300
- node.name=es
- cluster.name=es-cluster
- discovery.seed_hosts=es1
- cluster.initial_master_nodes=es,es1
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es-data:/usr/share/elasticsearch/data
restart: "always"
healthcheck:
test: "exit 0"
es1:
image: elasticsearch:7.8.1
environment:
- node.name=es1
- cluster.name=es-cluster
- discovery.seed_hosts=es
- cluster.initial_master_nodes=es,es1
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es1-data:/usr/share/elasticsearch/data
restart: "always"
healthcheck:
test: "exit 0"
volumes:
postgres-data:
es-data:
es1-data:
40 changes: 20 additions & 20 deletions requirements.txt
@@ -1,22 +1,22 @@
Django>=3.0.7
psycopg2
djangorestframework>=3.9.1
pylint
pydash
django-cors-headers
pyyaml
colour_runner
boto3
moto
git+https://github.com/snyaggarwal/django-queryset-csv
six
python-dateutil
requests
factory_boy
celery
Django==3.0.9
psycopg2==2.8.5
djangorestframework==3.11.1
pylint==2.5.3
pydash==4.8.0
django-cors-headers==3.4.0
pyyaml==5.3.1
colour_runner==0.1.1
boto3==1.14.37
moto==1.3.14
six==1.15.0
python-dateutil==2.8.1
requests==2.24.0
factory_boy==2.12.0
celery==4.4.7
celery_once==0.1.4
flower
redis>=2.10.5
flower==0.9.5
redis==3.5.3
celery[redis]==3.1.17
kombu
django-elasticsearch-dsl
kombu==4.6.10
django-elasticsearch-dsl==7.1.4
git+https://github.com/snyaggarwal/django-queryset-csv
2 changes: 1 addition & 1 deletion start_flower.sh
@@ -1,2 +1,2 @@
#!/bin/sh
celery -A core.celery flower --conf=flowerconfig.py
celery -A core.celery flower --basic_auth=${FLOWER_USER}:${FLOWER_PASSWORD} --conf=flowerconfig.py

0 comments on commit 6d91c00

Please sign in to comment.