Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MAINT: Update docker-compose.yml to version 3 #53

Merged
merged 22 commits into from
Feb 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 21 additions & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ jobs:
name: Set-up dockereve
command: |
mkdir -p dockereve-master/nginx/.ssl
mkdir -p /tmp/log
ln -s /tmp/log ./log
touch dockereve-master/nginx/.ssl/mriqcep.crt
touch dockereve-master/nginx/.ssl/mriqcep.key
docker pull mongo:latest
Expand All @@ -46,7 +48,25 @@ jobs:
docker-compose -f dockereve-master/docker-compose.yml build
- run:
name: Start server
command: docker-compose -f dockereve-master/docker-compose.yml up -d
command: |
docker system prune -f
docker-compose -f dockereve-master/docker-compose.yml up
background: true

- run:
name: Check Swagger frontend is up
command: |
sleep 10
curl -i http://localhost:8080/

- run:
name: Check BOLD endpoint is up
command: |
curl -i -H "Content-Type: application/json" http://localhost:5000/api/v1/bold

- store_artifacts:
path: /tmp/log/

- run:
name: Test MRIQC WebAPI
command: python3 test/testGetPost.py
Expand Down
2 changes: 1 addition & 1 deletion dockereve-master/.env
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ MONGODB_HOST=mongodb
MONGODB_PORT=27017

API_TOKEN=<secret_token>
API_URL=http://localhost/docs/api
API_URL=http://localhost/docs/api/api-docs
86 changes: 55 additions & 31 deletions dockereve-master/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,42 +1,66 @@
nginx:
image: nginx
version: '3.6'

services:
nginx:
image: nginx:latest
restart: always
ports:
- 80:80
- 443:443
- "80:80"
- "443:443"
volumes:
- /www/static
- ./uwsgi_params.par:/etc/nginx/uwsgi_params.par:ro
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./nginx/.ssl:/etc/ssl/certs/
volumes_from:
- eve
links:
- eve:eve
- swagger_ui:swagger_ui
- ./uwsgi_params.par:/etc/nginx/uwsgi_params.par:ro
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./nginx/.ssl:/etc/ssl/certs/
- eve:/www/static
depends_on:
- endpoints
- frontend
networks:
- mynet

swagger_ui:
frontend:
image: swaggerapi/swagger-ui:latest
env_file: .env
hostname: frontend
env_file:
- .env
ports:
- "8080:8080"
depends_on:
- mongodb
networks:
- mynet

eve:
endpoints:
restart: always
env_file: .env
hostname: endpoints
env_file:
- .env
build: eve-app
expose:
- 5000
ports:
- 5000
- "5000:5000"
volumes:
- ./eve-app:/usr/src/app
- /usr/src/app/static
links:
- mongodb
command: /usr/local/bin/gunicorn -w 2 -b :5000 app:app
- ./eve-app/settings.py:/usr/src/app/settings.py
- ./log/:/var/log/
- eve:/usr/src/app/static
# - /usr/src/app/static
command: /usr/local/bin/gunicorn -w 2 --access-logfile /var/log/gunicorn.log -b :5000 app:app
depends_on:
- mongodb
networks:
- mynet

mongodb:
image: mongo:latest
container_name: mongodb
hostname: mongodb
ports:
- "27017:27017"
networks:
- mynet

networks:
mynet:
driver: bridge

mongodb:
image: mongo
expose:
- 27017
ports:
- 27017
volumes:
eve:
8 changes: 2 additions & 6 deletions dockereve-master/eve-app/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
FROM python:3.6-onbuild
FROM python:3.7-slim

WORKDIR /usr/src/app

ADD . /usr/src/app

RUN pip3 install -r requirements.txt
RUN pip3 install pytest
RUN sed -i 's/\[scheme\]/\["https"\]/' /usr/local/lib/python3.6/site-packages/eve_swagger/objects.py

#EXPOSE 5000
#CMD ["python3", "server.py"]

RUN sed -i 's/\[scheme\]/\["https"\]/' /usr/local/lib/python3.7/site-packages/eve_swagger/objects.py
6 changes: 4 additions & 2 deletions dockereve-master/eve-app/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -551,8 +551,10 @@
'URL_PREFIX': 'api',
'API_VERSION': 'v1',
'ALLOWED_FILTERS': ['*'],
'MONGO_HOST': os.environ.get('MONGODB_HOST', ''),
'MONGO_PORT': int(os.environ.get('MONGODB_PORT', 27017)),
'MONGO_URI': (
f"mongodb://{os.environ.get('MONGODB_HOST', 'localhost')}"
f":{os.environ.get('MONGODB_PORT', '27017')}"
),
'MONGO_DBNAME': 'mriqc_api',
'PUBLIC_METHODS': ['GET'],
'PUBLIC_ITEM_METHODS': ['GET'],
Expand Down
17 changes: 14 additions & 3 deletions dockereve-master/nginx/nginx.conf
Original file line number Diff line number Diff line change
Expand Up @@ -10,27 +10,38 @@ events {
}

http {
upstream eve-endpoint {
server endpoints:5000;
}

server {
listen 80;
listen [::]:80 ;
server_name 34.224.227.208;

location = /docs/api/api-docs {
proxy_pass http://eve-endpoint/docs/api/api-docs;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

location = /docs/api {
proxy_pass http://eve:5000/docs/api;
proxy_pass http://eve-endpoint/docs/api;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

location /api {
proxy_pass http://eve:5000;
proxy_pass http://eve-endpoint/api;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

location / {
proxy_pass http://swagger_ui:8080/;
proxy_pass http://frontend:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Expand Down
Loading