Skip to content

Instantly share code, notes, and snippets.

@johndpope
Forked from ianmilligan1/docker-compose.yml
Created September 15, 2017 18:43
Show Gist options
  • Save johndpope/4501a70f95a7f1a73b67f7d121e87b63 to your computer and use it in GitHub Desktop.
Save johndpope/4501a70f95a7f1a73b67f7d121e87b63 to your computer and use it in GitHub Desktop.
ubuntu@ip-172-31-14-185:~/sfm-docker$ cat docker-compose.yml
version: "2"
services:
db:
image: gwul/sfm-ui-db:1.2.0
environment:
- POSTGRES_PASSWORD
- TZ
logging:
driver: json-file
options:
max-size: ${DOCKER_LOG_MAX_SIZE}
max-file: ${DOCKER_LOG_MAX_FILE}
volumes_from:
- data
restart: always
mq:
# RabbitMQ 3-management
image: rabbitmq@sha256:a5180a37b0baebb938ee9d12dd11eed64a909288d7f344e24771278f8a122367
ports:
# Opens up the ports for RabbitMQ management
- "${RABBITMQ_MANAGEMENT_PORT}:15672"
environment:
- RABBITMQ_DEFAULT_USER=${RABBITMQ_USER}
- RABBITMQ_DEFAULT_PASS=${RABBITMQ_PASSWORD}
- TZ
logging:
driver: json-file
options:
max-size: ${DOCKER_LOG_MAX_SIZE}
max-file: ${DOCKER_LOG_MAX_FILE}
restart: always
# These containers will exit on startup. That's OK.
data:
image: ubuntu:14.04
command: /bin/true
volumes:
- ${DATA_VOLUME}
environment:
- TZ
processingdata:
image: ubuntu:14.04
command: /bin/true
volumes:
- ${PROCESSING_VOLUME}
environment:
- TZ
ui:
image: gwul/sfm-ui:1.2.0
ports:
- "${SFM_PORT}:80"
links:
- db:db
- mq:mq
environment:
- SFM_DEBUG=False
- SFM_APSCHEDULER_LOG=INFO
- SFM_UI_LOG=INFO
# This adds a 5 minute schedule option to speed testing.
- SFM_FIVE_MINUTE_SCHEDULE=False
- TZ
- SFM_SITE_ADMIN_NAME
- SFM_SITE_ADMIN_EMAIL
- SFM_SITE_ADMIN_PASSWORD
- SFM_EMAIL_USER
- SFM_EMAIL_PASSWORD
- SFM_SMTP_HOST
- SFM_HOST=${SFM_HOSTNAME}:${SFM_PORT}
- TWITTER_CONSUMER_KEY
- TWITTER_CONSUMER_SECRET
- WEIBO_API_KEY
- WEIBO_API_SECRET
- TUMBLR_CONSUMER_KEY
- TUMBLR_CONSUMER_SECRET
- RABBITMQ_USER
- RABBITMQ_PASSWORD
- POSTGRES_PASSWORD
# To have some test accounts created.
- LOAD_FIXTURES=False
- SFM_REQS=release
- DATA_VOLUME_THRESHOLD
- PROCESSING_VOLUME_THRESHOLD
logging:
driver: json-file
options:
max-size: ${DOCKER_LOG_MAX_SIZE}
max-file: ${DOCKER_LOG_MAX_FILE}
volumes_from:
- data:ro
- processingdata:ro
restart: always
# Twitter
twitterrestharvester:
image: gwul/sfm-twitter-rest-harvester:1.2.0
links:
- mq:mq
environment:
- TZ
- DEBUG=False
- RABBITMQ_USER
- RABBITMQ_PASSWORD
- SFM_REQS=release
- HARVEST_TRIES=${TWITTER_REST_HARVEST_TRIES}
logging:
driver: json-file
options:
max-size: ${DOCKER_LOG_MAX_SIZE}
max-file: ${DOCKER_LOG_MAX_FILE}
volumes_from:
- data
restart: always
twitterstreamharvester:
image: gwul/sfm-twitter-stream-harvester:1.2.0
links:
- mq:mq
environment:
- TZ
- DEBUG=False
- RABBITMQ_USER
- RABBITMQ_PASSWORD
- SFM_REQS=release
- HARVEST_TRIES=${TWITTER_STREAM_HARVEST_TRIES}
logging:
driver: json-file
options:
max-size: ${DOCKER_LOG_MAX_SIZE}
max-file: ${DOCKER_LOG_MAX_FILE}
volumes_from:
- data
restart: always
twitterrestexporter:
image: gwul/sfm-twitter-rest-exporter:1.2.0
links:
- mq:mq
- ui:api
environment:
- TZ
- DEBUG=False
- RABBITMQ_USER
- RABBITMQ_PASSWORD
- SFM_REQS=release
logging:
driver: json-file
options:
max-size: ${DOCKER_LOG_MAX_SIZE}
max-file: ${DOCKER_LOG_MAX_FILE}
volumes_from:
- data
restart: always
twitterstreamexporter:
image: gwul/sfm-twitter-stream-exporter:1.2.0
links:
- mq:mq
- ui:api
environment:
- TZ
- DEBUG=False
- RABBITMQ_USER
- RABBITMQ_PASSWORD
- SFM_REQS=release
logging:
driver: json-file
options:
max-size: ${DOCKER_LOG_MAX_SIZE}
max-file: ${DOCKER_LOG_MAX_FILE}
volumes_from:
- data
restart: always
# FLICKR
flickrharvester:
image: gwul/sfm-flickr-harvester:1.2.0
links:
- mq:mq
environment:
- TZ
- DEBUG=False
- RABBITMQ_USER
- RABBITMQ_PASSWORD
- SFM_REQS=release
- HARVEST_TRIES=${FLICKR_HARVEST_TRIES}
logging:
driver: json-file
options:
max-size: ${DOCKER_LOG_MAX_SIZE}
max-file: ${DOCKER_LOG_MAX_FILE}
volumes_from:
- data
restart: always
flickrexporter:
image: gwul/sfm-flickr-exporter:1.2.0
links:
- mq:mq
- ui:api
environment:
- DEBUG=False
- TZ
- RABBITMQ_USER
- RABBITMQ_PASSWORD
- SFM_REQS=release
logging:
driver: json-file
options:
max-size: ${DOCKER_LOG_MAX_SIZE}
max-file: ${DOCKER_LOG_MAX_FILE}
volumes_from:
- data
restart: always
# WEB
heritrix:
image: gwul/sfm-heritrix:1.2.0
ports:
# Opens up the port for Heritrix admin console.
- "${HERITRIX_ADMIN_PORT}:8443"
environment:
- HERITRIX_USER
- HERITRIX_PASSWORD
# Memory for heritrix
- JAVA_OPTS=-Xmx512M
logging:
driver: json-file
options:
max-size: ${DOCKER_LOG_MAX_SIZE}
max-file: ${DOCKER_LOG_MAX_FILE}
volumes_from:
- data
restart: always
webharvester:
image: gwul/sfm-web-harvester:1.2.0
links:
- mq:mq
- heritrix:heritrix
environment:
- DEBUG=False
- HERITRIX_CONTACT_URL
- RABBITMQ_USER
- RABBITMQ_PASSWORD
- HERITRIX_USER
- HERITRIX_PASSWORD
- SFM_REQS=release
logging:
driver: json-file
options:
max-size: ${DOCKER_LOG_MAX_SIZE}
max-file: ${DOCKER_LOG_MAX_FILE}
volumes_from:
- data
restart: always
# WEIBO
weiboharvester:
image: gwul/sfm-weibo-harvester:1.2.0
links:
- mq:mq
environment:
- TZ
- DEBUG=False
- RABBITMQ_USER
- RABBITMQ_PASSWORD
- SFM_REQS=release
- HARVEST_TRIES=${WEIBO_HARVEST_TRIES}
logging:
driver: json-file
options:
max-size: ${DOCKER_LOG_MAX_SIZE}
max-file: ${DOCKER_LOG_MAX_FILE}
volumes_from:
- data
restart: always
weiboexporter:
image: gwul/sfm-weibo-exporter:1.2.0
links:
- mq:mq
- ui:api
environment:
- TZ
- DEBUG=False
- RABBITMQ_USER
- RABBITMQ_PASSWORD
- SFM_REQS=release
logging:
driver: json-file
options:
max-size: ${DOCKER_LOG_MAX_SIZE}
max-file: ${DOCKER_LOG_MAX_FILE}
volumes_from:
- data
restart: always
# TUMBLR
tumblrharvester:
image: gwul/sfm-tumblr-harvester:1.1.0
links:
- mq:mq
environment:
- TZ
- DEBUG=False
- RABBITMQ_USER
- RABBITMQ_PASSWORD
- SFM_REQS=release
- HARVEST_TRIES=${TUMBLR_HARVEST_TRIES}
logging:
driver: json-file
options:
max-size: ${DOCKER_LOG_MAX_SIZE}
max-file: ${DOCKER_LOG_MAX_FILE}
volumes_from:
- data
restart: always
tumblrexporter:
image: gwul/sfm-tumblr-exporter:1.1.0
links:
- mq:mq
- ui:api
environment:
- TZ
- DEBUG=False
- RABBITMQ_USER
- RABBITMQ_PASSWORD
- SFM_REQS=release
logging:
driver: json-file
options:
max-size: ${DOCKER_LOG_MAX_SIZE}
max-file: ${DOCKER_LOG_MAX_FILE}
volumes_from:
- data
restart: always
# PROCESSING
# This container will exit on startup. That's OK.
processing:
image: gwul/sfm-processing:1.2.0
links:
- ui:api
environment:
- TZ
logging:
driver: json-file
options:
max-size: ${DOCKER_LOG_MAX_SIZE}
max-file: ${DOCKER_LOG_MAX_FILE}
volumes_from:
- data:ro
- processingdata
# ELK
# Multiple instances of this container can be included by duplicating this definition
# and changing ports and command.
# elk:
# image: gwul/sfm-elk:1.2.0
# ports:
# #Kibana web interface
# - "5601:5601"
# #Elasticsearch JSON interface
# - "9200:9200"
# #Logstash server
# - "5000:5000"
# links:
# - mq:mq
# volumes_from:
# - data
# environment:
# - TZ
# - DEBUG=False
# - RABBITMQ_USER
# - RABBITMQ_PASSWORD
# - ES_HEAP_SIZE=1024m
# logging:
# driver: json-file
# options:
# max-size: ${DOCKER_LOG_MAX_SIZE}
# max-file: ${DOCKER_LOG_MAX_FILE}
# # To limit ELK loading to a specific collection set.
## command: --collection-set=04afb3d938aa468ca2a71de0824da126
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment