base_image: "samsaffron/discourse_base:1.0.11" update_pups: false params: home: /var/www/message_bus templates: - "templates/redis.template.yml" expose: - "80:80" volumes: - volume: host: /var/docker/shared/chat guest: /shared hooks: after_redis: - exec: cmd: - useradd chat -s /bin/bash -m -U - exec: background: true cmd: "sudo -u redis /usr/bin/redis-server /etc/redis/redis.conf --dbfilename test.rdb" - exec: mkdir -p /var/www - exec: cd /var/www && git clone --depth 1 https://github.com/SamSaffron/message_bus.git - exec: cmd: - gem install unicorn - gem install redis - gem install sinatra - gem install rbtrace - replace: - filename: $home/examples/chat/chat.rb - from: "require 'json'" - to: "require 'json'\nrequire 'rbtrace'" - file: path: /etc/service/unicorn/run chmod: "+x" contents: | #!/bin/bash exec 2>&1 # redis cd $home/examples/chat exec sudo -E -u chat LD_PRELOAD=/usr/lib/libjemalloc.so.1 unicorn -p 8080 -E production - exec: rm /etc/nginx/sites-enabled/default - replace: filename: /etc/nginx/nginx.conf from: pid /run/nginx.pid; to: daemon off; - file: path: /etc/nginx/conf.d/chat.conf contents: | upstream chat { server localhost:8080; } server { listen 80; gzip on; gzip_types application/json text/css application/x-javascript; gzip_min_length 1000; server_name chat.samsaffron.com; keepalive_timeout 65; location / { try_files $uri @chat; } location @chat{ proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto http; proxy_pass http://chat; } } - file: path: /etc/service/nginx/run chmod: "+x" contents: | #!/bin/sh exec 2>&1 exec /usr/sbin/nginx