2020-10-04 17:41:04 +07:00
|
|
|
version: '3'
|
2016-08-28 20:42:07 -07:00
|
|
|
services:
|
2020-10-04 17:41:04 +07:00
|
|
|
newsblur_web:
|
2020-10-27 09:59:00 +07:00
|
|
|
hostname: nb.com
|
2020-10-04 17:41:04 +07:00
|
|
|
container_name: newsblur_web
|
|
|
|
image: newsblur/newsblur_python3
|
2020-10-27 09:59:00 +07:00
|
|
|
dns_search:
|
|
|
|
- nb.com
|
2020-10-04 17:41:04 +07:00
|
|
|
environment:
|
|
|
|
- DOCKERBUILD=True
|
|
|
|
stdin_open: true
|
|
|
|
tty: true
|
2016-08-28 20:42:07 -07:00
|
|
|
links:
|
2020-10-04 17:41:04 +07:00
|
|
|
- db_mongo
|
2016-08-28 20:42:07 -07:00
|
|
|
- postgres
|
|
|
|
- elasticsearch
|
|
|
|
- redis
|
2020-10-04 17:41:04 +07:00
|
|
|
restart: always
|
|
|
|
depends_on:
|
|
|
|
- db_mongo
|
|
|
|
- postgres
|
|
|
|
- redis
|
|
|
|
- elasticsearch
|
|
|
|
ulimits:
|
|
|
|
nproc: 10000
|
|
|
|
nofile:
|
|
|
|
soft: 10000
|
|
|
|
hard: 10000
|
2016-08-28 20:42:07 -07:00
|
|
|
ports:
|
|
|
|
- '8000:8000'
|
2020-10-13 22:03:25 +07:00
|
|
|
# only use gunicorn if the TEST env variable is not "True"
|
|
|
|
command: bash -c 'if [[ -z "${TEST}" && "${TEST}" = "True" ]] ; then echo "starting test env"; else gunicorn --bind :8000 newsblur_web.wsgi:application; fi'
|
2020-10-04 17:41:04 +07:00
|
|
|
volumes:
|
|
|
|
- app-files:/srv/newsblur
|
|
|
|
nginx:
|
|
|
|
container_name: nginx
|
|
|
|
image: nginx:1.13
|
|
|
|
ports:
|
|
|
|
- 81:81
|
|
|
|
depends_on:
|
|
|
|
- newsblur_web
|
|
|
|
- favicons
|
|
|
|
- postgres
|
|
|
|
- redis
|
|
|
|
- db_mongo
|
|
|
|
- elasticsearch
|
|
|
|
- original_pages
|
|
|
|
- original_text
|
|
|
|
- node_websocket
|
|
|
|
environment:
|
|
|
|
- DOCKERBUILD=True
|
|
|
|
volumes:
|
|
|
|
- ./docker/nginx:/etc/nginx/conf.d
|
|
|
|
- app-files:/srv/newsblur
|
2016-08-28 20:42:07 -07:00
|
|
|
|
|
|
|
postgres:
|
2020-10-04 17:41:04 +07:00
|
|
|
container_name: postgres
|
2020-06-12 03:02:59 -04:00
|
|
|
image: postgres:9.6
|
2016-08-28 20:42:07 -07:00
|
|
|
environment:
|
|
|
|
- POSTGRES_USER=newsblur
|
|
|
|
- POSTGRES_PASSWORD=newsblur
|
|
|
|
ports:
|
2020-10-27 11:10:22 +07:00
|
|
|
- '5434:5432'
|
2016-08-28 20:42:07 -07:00
|
|
|
volumes:
|
2018-10-07 12:04:20 -05:00
|
|
|
- ./docker/volumes/postgres:/var/lib/postgresql/data
|
2016-08-28 20:42:07 -07:00
|
|
|
|
|
|
|
redis:
|
|
|
|
image: redis:3
|
|
|
|
ports:
|
2020-10-26 10:36:24 +07:00
|
|
|
- '6579:6579'
|
2020-10-04 17:41:04 +07:00
|
|
|
container_name: redis
|
2018-10-07 12:04:20 -05:00
|
|
|
volumes:
|
|
|
|
- ./docker/volumes/redis:/data
|
|
|
|
- ./config/redis.conf:/usr/local/etc/redis_server.conf
|
|
|
|
- ./config/redis_docker.conf:/etc/redis_server.conf
|
|
|
|
- ./docker/volumes/redis.var.lib:/var/lib/redis
|
2020-10-26 10:36:24 +07:00
|
|
|
command: redis-server --port 6579
|
2016-08-28 20:42:07 -07:00
|
|
|
|
|
|
|
elasticsearch:
|
2020-10-04 17:41:04 +07:00
|
|
|
container_name: elasticsearch
|
2016-08-28 20:42:07 -07:00
|
|
|
image: elasticsearch:1.7
|
|
|
|
ports:
|
|
|
|
- '9200:9200'
|
2018-10-07 12:04:20 -05:00
|
|
|
volumes:
|
|
|
|
- ./docker/volumes/elasticsearch:/usr/share/elasticsearch/data
|
2016-08-28 20:42:07 -07:00
|
|
|
|
2020-10-04 17:41:04 +07:00
|
|
|
db_mongo:
|
|
|
|
container_name: db_mongo
|
2017-11-09 13:37:13 +01:00
|
|
|
image: mongo:3.2
|
2016-08-28 20:42:07 -07:00
|
|
|
ports:
|
2020-10-25 12:48:17 +07:00
|
|
|
- 29019:29019
|
|
|
|
command: mongod --smallfiles --port 29019
|
2018-10-07 12:04:20 -05:00
|
|
|
volumes:
|
2020-10-04 17:41:04 +07:00
|
|
|
- ./docker/volumes/db_mongo:/data/db
|
|
|
|
|
|
|
|
original_pages:
|
|
|
|
image: newsblur/newsblur_node
|
|
|
|
container_name: node_original_page
|
|
|
|
environment:
|
|
|
|
- NODE_ENV=development
|
|
|
|
command: node original_page.js
|
|
|
|
ports:
|
|
|
|
- 3060:3060
|
|
|
|
volumes:
|
|
|
|
- node-files:/usr/src/app
|
|
|
|
original_text:
|
|
|
|
image: newsblur/newsblur_node
|
|
|
|
container_name: node_original_text
|
|
|
|
environment:
|
|
|
|
- NODE_ENV=development
|
|
|
|
ports:
|
|
|
|
- 4040:4040
|
2020-10-26 10:04:17 +07:00
|
|
|
command: node original_text.js
|
2020-10-04 17:41:04 +07:00
|
|
|
volumes:
|
|
|
|
- node-files:/usr/src/app
|
|
|
|
|
|
|
|
favicons:
|
|
|
|
image: newsblur/newsblur_node
|
|
|
|
container_name: node_favicons
|
|
|
|
environment:
|
|
|
|
- NODE_ENV=docker
|
2020-10-25 12:36:58 +07:00
|
|
|
- MONGO_PORT=29019
|
2020-10-04 17:41:04 +07:00
|
|
|
ports:
|
|
|
|
- 3030:3030
|
|
|
|
command: node favicons.js
|
2020-10-13 22:03:25 +07:00
|
|
|
depends_on:
|
|
|
|
- postgres
|
2020-10-04 17:41:04 +07:00
|
|
|
volumes:
|
|
|
|
- node-files:/usr/src/app
|
|
|
|
|
|
|
|
node_websocket:
|
|
|
|
container_name: node_websocket
|
|
|
|
image: newsblur/newsblur_node
|
|
|
|
environment:
|
|
|
|
- NODE_ENV=docker
|
|
|
|
command: node unread_counts.js
|
|
|
|
stop_signal: HUP
|
|
|
|
ports:
|
|
|
|
- 8888:8888
|
|
|
|
volumes:
|
|
|
|
- node-files:/usr/src/app
|
|
|
|
|
|
|
|
celerybeat:
|
|
|
|
container_name: celerybeat
|
|
|
|
image: newsblur/newsblur_python3
|
2020-10-13 22:03:25 +07:00
|
|
|
command: bash -c "mkdir -p data && celery beat -A newsblur_web --schedule=/srv/newsblur/data/celerybeat-schedule.db --loglevel=INFO --pidfile=/srv/celeryd.pid"
|
2020-10-04 17:41:04 +07:00
|
|
|
environment:
|
|
|
|
- DOCKERBUILD=True
|
|
|
|
volumes:
|
|
|
|
- app-files:/srv/newsblur
|
|
|
|
- ./config:/etc/supervisor/conf.d/
|
|
|
|
|
|
|
|
|
|
|
|
celeryd:
|
|
|
|
container_name: celeryd
|
|
|
|
image: newsblur/newsblur_python3
|
2020-10-13 22:03:25 +07:00
|
|
|
command: "celery worker -A newsblur_web --loglevel=INFO -Q new_feeds,push_feeds,update_feeds"
|
2020-10-04 17:41:04 +07:00
|
|
|
volumes:
|
|
|
|
- app-files:/srv/newsblur
|
|
|
|
environment:
|
|
|
|
- DOCKERBUILD=True
|
|
|
|
user: "${CURRENT_UID}:${CURRENT_GID}"
|
|
|
|
|
|
|
|
celeryd_beat:
|
|
|
|
container_name: celeryd_beat
|
|
|
|
image: newsblur/newsblur_python3
|
2020-10-13 22:03:25 +07:00
|
|
|
command: "celery worker -A newsblur_web --loglevel=INFO -Q beat_tasks -c 3"
|
2020-10-04 17:41:04 +07:00
|
|
|
environment:
|
|
|
|
- DOCKERBUILD=True
|
|
|
|
volumes:
|
|
|
|
- app-files:/srv/newsblur
|
|
|
|
user: "${CURRENT_UID}:${CURRENT_GID}"
|
|
|
|
|
|
|
|
celeryd_beat_feeds:
|
|
|
|
container_name: celeryd_beat_feeds
|
|
|
|
image: newsblur/newsblur_python3
|
2020-10-13 22:03:25 +07:00
|
|
|
command: "celery worker -A newsblur_web --loglevel=INFO -Q beat_feeds_task -c 1"
|
2020-10-04 17:41:04 +07:00
|
|
|
environment:
|
|
|
|
- DOCKERBUILD=True
|
|
|
|
volumes:
|
|
|
|
- app-files:/srv/newsblur
|
|
|
|
user: "${CURRENT_UID}:${CURRENT_GID}"
|
|
|
|
|
|
|
|
celeryd_news:
|
|
|
|
container_name: celeryd_news
|
|
|
|
image: newsblur/newsblur_python3
|
2020-10-13 22:03:25 +07:00
|
|
|
command: "celery worker -A newsblur_web --loglevel=INFO -Q new_feeds,push_feeds"
|
2020-10-04 17:41:04 +07:00
|
|
|
environment:
|
|
|
|
- DOCKERBUILD=True
|
|
|
|
volumes:
|
|
|
|
- app-files:/srv/newsblur
|
|
|
|
user: "${CURRENT_UID}:${CURRENT_GID}"
|
|
|
|
|
|
|
|
celeryd_search_indexer:
|
|
|
|
container_name: celeryd_search_indexer
|
|
|
|
image: newsblur/newsblur_python3
|
2020-10-13 22:03:25 +07:00
|
|
|
command: "celery worker -A newsblur_web --loglevel=INFO -Q search_indexer -c 4"
|
2020-10-04 17:41:04 +07:00
|
|
|
environment:
|
|
|
|
- DOCKERBUILD=True
|
|
|
|
volumes:
|
|
|
|
- app-files:/srv/newsblur
|
|
|
|
|
|
|
|
user: $CURRENT_UID:$CURRENT_GID
|
|
|
|
|
|
|
|
celeryd_search_indexer_tasker:
|
|
|
|
container_name: celeryd_search_indexer_tasker
|
|
|
|
image: newsblur/newsblur_python3
|
2020-10-13 22:03:25 +07:00
|
|
|
command: "celery worker -A newsblur_web --loglevel=INFO -Q search_indexer_tasker -c 2"
|
2020-10-04 17:41:04 +07:00
|
|
|
environment:
|
|
|
|
- DOCKERBUILD=True
|
|
|
|
volumes:
|
|
|
|
- app-files:/srv/newsblur
|
|
|
|
user: $CURRENT_UID:$CURRENT_GID
|
|
|
|
|
|
|
|
celeryd_work_queue:
|
|
|
|
container_name: celeryd_work_queue
|
|
|
|
image: newsblur/newsblur_python3
|
2020-10-13 22:03:25 +07:00
|
|
|
command: bash -c "celery worker -A newsblur_web --loglevel=INFO -Q work_queue"
|
2020-10-04 17:41:04 +07:00
|
|
|
ports:
|
|
|
|
- 82:82
|
|
|
|
environment:
|
|
|
|
- DOCKERBUILD=True
|
|
|
|
volumes:
|
|
|
|
- app-files:/srv/newsblur
|
|
|
|
user: $CURRENT_UID:$CURRENT_GID
|
|
|
|
|
|
|
|
monitor:
|
|
|
|
container_name: monitor
|
|
|
|
image: newsblur/newsblur_python3
|
|
|
|
command: bash -c "python /srv/newsblur/flask_monitor/db_monitor.py"
|
|
|
|
environment:
|
|
|
|
- DOCKERBUILD=True
|
|
|
|
volumes:
|
|
|
|
- app-files:/srv/newsblur
|
|
|
|
ports:
|
2020-10-25 12:26:41 +07:00
|
|
|
- 5579:5579
|
2020-10-04 17:41:04 +07:00
|
|
|
|
|
|
|
haproxy:
|
2020-10-13 22:03:25 +07:00
|
|
|
domainname: 'nb.local.com'
|
2020-10-04 17:41:04 +07:00
|
|
|
container_name: haproxy
|
|
|
|
build:
|
|
|
|
context: .
|
|
|
|
dockerfile: docker/haproxy/Dockerfile
|
|
|
|
depends_on:
|
|
|
|
- nginx
|
|
|
|
- newsblur_web
|
|
|
|
- redis
|
|
|
|
ports:
|
|
|
|
- 80:80
|
|
|
|
- 443:443
|
|
|
|
- 1936:1936
|
|
|
|
environment:
|
|
|
|
- DOCKERBUILD=True
|
|
|
|
volumes:
|
|
|
|
- ./docker/haproxy/haproxy.conf:/usr/local/etc/haproxy/haproxy.cfg
|
|
|
|
- app-files:/srv/newsblur
|
|
|
|
|
|
|
|
volumes:
|
|
|
|
app-files:
|
|
|
|
driver_opts:
|
|
|
|
type: nfs
|
|
|
|
device: $PWD
|
|
|
|
o: bind
|
|
|
|
node-files:
|
|
|
|
driver_opts:
|
|
|
|
type: nfs
|
|
|
|
device: $PWD/node
|
|
|
|
o: bind
|