swarm_orca 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/.overcommit.yml +33 -0
- data/.rubocop.yml +1 -0
- data/.rubocop_todo.yml +17 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +15 -0
- data/Gemfile +5 -0
- data/Gemfile.lock +57 -0
- data/README.md +335 -0
- data/Rakefile +3 -0
- data/bin/orca +7 -0
- data/lib/capistrano/scm/copy.rb +62 -0
- data/lib/capistrano/scm/tasks/copy.cap +33 -0
- data/lib/capistrano/scm/tasks/deploy.rb +16 -0
- data/lib/capistrano/swarm_orca/bash/crypt +1 -0
- data/lib/capistrano/swarm_orca/deploy.rb +3 -0
- data/lib/capistrano/swarm_orca/docker.rb +3 -0
- data/lib/capistrano/swarm_orca/helpers/fetch_config.rb +134 -0
- data/lib/capistrano/swarm_orca/local.rb +43 -0
- data/lib/capistrano/swarm_orca/set_global_config.rb +3 -0
- data/lib/capistrano/swarm_orca/tasks/deploy.cap +200 -0
- data/lib/capistrano/swarm_orca/tasks/docker.cap +318 -0
- data/lib/capistrano/swarm_orca/tasks/set_global_config.cap +28 -0
- data/lib/swarm_orca.rb +11 -0
- data/lib/swarm_orca/encrypt.rb +40 -0
- data/lib/swarm_orca/new.rb +73 -0
- data/lib/swarm_orca/orca_cli.rb +41 -0
- data/lib/swarm_orca/templates/orca/.gitignore +50 -0
- data/lib/swarm_orca/templates/orca/.ruby-gemset.tt +1 -0
- data/lib/swarm_orca/templates/orca/.ruby-version +1 -0
- data/lib/swarm_orca/templates/orca/README.md +93 -0
- data/lib/swarm_orca/templates/orca/application_stack/docker-stack-elasticsearch.yml.erb.tt +22 -0
- data/lib/swarm_orca/templates/orca/application_stack/docker-stack-errbit.yml.erb.tt +43 -0
- data/lib/swarm_orca/templates/orca/application_stack/docker-stack-mysql.yml.erb.tt +17 -0
- data/lib/swarm_orca/templates/orca/application_stack/docker-stack-nginx.yml.erb.tt +22 -0
- data/lib/swarm_orca/templates/orca/application_stack/docker-stack-rabbitmq.yml.erb.tt +19 -0
- data/lib/swarm_orca/templates/orca/application_stack/docker-stack-redis.yml.erb.tt +19 -0
- data/lib/swarm_orca/templates/orca/capistrano/Capfile +45 -0
- data/lib/swarm_orca/templates/orca/capistrano/Gemfile.tt +4 -0
- data/lib/swarm_orca/templates/orca/capistrano/config/deploy.rb.tt +30 -0
- data/lib/swarm_orca/templates/orca/capistrano/config/deploy/template_stage.rb +64 -0
- data/lib/swarm_orca/templates/orca/nginx/Dockerfile +5 -0
- data/lib/swarm_orca/templates/orca/nginx/nginx.conf +31 -0
- data/lib/swarm_orca/templates/orca/redis/Dockerfile +5 -0
- data/lib/swarm_orca/templates/orca/redis/redis.conf +2 -0
- data/lib/swarm_orca/version.rb +5 -0
- data/swarm_orca.gemspec +26 -0
- metadata +174 -0
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'thor'
|
4
|
+
require_relative 'new'
|
5
|
+
require_relative 'encrypt'
|
6
|
+
module SwarmOrca
|
7
|
+
module Cli
|
8
|
+
# Orca command line class
|
9
|
+
class OrcaCli < Thor
|
10
|
+
desc 'new ORCA_DIRECTORY_NAME GIT_FORK DOCKER_NETWORK',
|
11
|
+
'This Command will create a new Orca project'
|
12
|
+
long_desc <<-ORCA_NEW
|
13
|
+
ORCA_DIRECTORY_NAME: Name of the root directory of orca.\n
|
14
|
+
GIT_FORK: Orca github fork.\n
|
15
|
+
DOCKER_NETWORK: Docker swarm newtwork name.
|
16
|
+
ORCA_NEW
|
17
|
+
|
18
|
+
def new(orca_directory_name, git_fork, docker_network)
|
19
|
+
New.new(root_dir: Dir.pwd,
|
20
|
+
orca_dir_name: orca_directory_name,
|
21
|
+
git_fork: git_fork,
|
22
|
+
network: docker_network).execute
|
23
|
+
end
|
24
|
+
|
25
|
+
desc 'gen_enc_key', 'This Command will generate new encryption key'
|
26
|
+
def gen_enc_key
|
27
|
+
say("Encryption Key: #{Encrypt.generate_key}")
|
28
|
+
end
|
29
|
+
|
30
|
+
desc 'encrypt KEY TEXT', 'This Command will encrypt the given text'
|
31
|
+
def encrypt(key, text)
|
32
|
+
say(Encrypt.new(key).encrypt(text).to_s)
|
33
|
+
end
|
34
|
+
|
35
|
+
desc 'decrypt KEY CIPHER', 'This Command will decrypt the given cipher'
|
36
|
+
def decrypt(key, cipher)
|
37
|
+
say(Encrypt.new(key).decrypt(cipher).to_s)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
*.gem
|
2
|
+
*.rbc
|
3
|
+
/.config
|
4
|
+
/coverage/
|
5
|
+
/InstalledFiles
|
6
|
+
/pkg/
|
7
|
+
/spec/reports/
|
8
|
+
/spec/examples.txt
|
9
|
+
/test/tmp/
|
10
|
+
/test/version_tmp/
|
11
|
+
/tmp/
|
12
|
+
|
13
|
+
# Used by dotenv library to load environment variables.
|
14
|
+
# .env
|
15
|
+
|
16
|
+
## Specific to RubyMotion:
|
17
|
+
.dat*
|
18
|
+
.repl_history
|
19
|
+
build/
|
20
|
+
*.bridgesupport
|
21
|
+
build-iPhoneOS/
|
22
|
+
build-iPhoneSimulator/
|
23
|
+
|
24
|
+
## Specific to RubyMotion (use of CocoaPods):
|
25
|
+
#
|
26
|
+
# We recommend against adding the Pods directory to your .gitignore. However
|
27
|
+
# you should judge for yourself, the pros and cons are mentioned at:
|
28
|
+
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
|
29
|
+
#
|
30
|
+
# vendor/Pods/
|
31
|
+
|
32
|
+
## Documentation cache and generated files:
|
33
|
+
/.yardoc/
|
34
|
+
/_yardoc/
|
35
|
+
/doc/
|
36
|
+
/rdoc/
|
37
|
+
|
38
|
+
## Environment normalization:
|
39
|
+
/.bundle/
|
40
|
+
/vendor/bundle
|
41
|
+
/lib/bundler/man/
|
42
|
+
|
43
|
+
# for a library or gem, you might want to ignore these files since the code is
|
44
|
+
# intended to run in multiple environments; otherwise, check them in:
|
45
|
+
# Gemfile.lock
|
46
|
+
# .ruby-version
|
47
|
+
# .ruby-gemset
|
48
|
+
|
49
|
+
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
50
|
+
.rvmrc
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= @gemset %>
|
@@ -0,0 +1 @@
|
|
1
|
+
2.6.1
|
@@ -0,0 +1,93 @@
|
|
1
|
+
# Orca
|
2
|
+
- A Template project for deploying services to a docker swarm cluster. This template includes the deployment stakes for the following services.
|
3
|
+
|
4
|
+
* Elasticsearch
|
5
|
+
* Errbit
|
6
|
+
* Nginx
|
7
|
+
* RabbitMQ
|
8
|
+
* Redis
|
9
|
+
* MySql
|
10
|
+
|
11
|
+
# Directories & Files Structure
|
12
|
+
- application_stack :
|
13
|
+
a folder that contains docker-comppose templates files for applications.
|
14
|
+
- Capistrano:
|
15
|
+
Capistrano gem home folder
|
16
|
+
- capistrano/config/deploy/template_stage.rb:
|
17
|
+
Deployment stage template.
|
18
|
+
- capistrano/config/deploy
|
19
|
+
Organize deployment stages and their configurations.
|
20
|
+
- capistrano/config/deploy.rb:
|
21
|
+
Define all deployment tasks and functions.
|
22
|
+
- capistrano/log: capistrano log folder
|
23
|
+
- nginx: nginx docker image configurations
|
24
|
+
- redis: redis docker image configurations
|
25
|
+
- seeds: contains applications DB seed scripts and data.
|
26
|
+
|
27
|
+
# Deployment Steps
|
28
|
+
- Prepare your deployment stage file under `config/deploy/${your_stage_name}.rb`. You can duplicate the `template_stage` and replace all the necessary configurations.
|
29
|
+
- Upload deployment scripts to the swarm manager server
|
30
|
+
|
31
|
+
```sh
|
32
|
+
cd capistrano
|
33
|
+
bundle exec cap ${your_stage_name} deploy:setup
|
34
|
+
```
|
35
|
+
|
36
|
+
- Create Databases (assuming that orca have two applications web and backend)
|
37
|
+
|
38
|
+
```sh
|
39
|
+
➜ cd capistrano
|
40
|
+
➜ cap -T | grep "create.*dbs"
|
41
|
+
cap deploy:create_web_dbs
|
42
|
+
cap deploy:create_backend_dbs
|
43
|
+
```
|
44
|
+
|
45
|
+
- Seed Databases (assuming that orca have two applications web and backend)
|
46
|
+
|
47
|
+
```sh
|
48
|
+
➜ cd capistrano
|
49
|
+
➜ cap -T | grep "seed.*dbs"
|
50
|
+
cap deploy:seed_web_dbs
|
51
|
+
cap deploy:seed_backend_dbs
|
52
|
+
```
|
53
|
+
|
54
|
+
- Create and seed all databases at once
|
55
|
+
|
56
|
+
```sh
|
57
|
+
➜ cd capistrano
|
58
|
+
➜ cap deploy:all_dbs
|
59
|
+
```
|
60
|
+
|
61
|
+
- Deploy services/applications individually
|
62
|
+
|
63
|
+
```sh
|
64
|
+
cd capistrano
|
65
|
+
bundle exec cap ${your_stage_name} deploy:${service_name}
|
66
|
+
```
|
67
|
+
|
68
|
+
- Deploy all services
|
69
|
+
|
70
|
+
```sh
|
71
|
+
cd capistrano
|
72
|
+
bundle exec cap ${your_stage_name} deploy:all
|
73
|
+
```
|
74
|
+
|
75
|
+
- Deploy subset of the defined services
|
76
|
+
```
|
77
|
+
export DEPLOYED_STACKS='nginx redis'
|
78
|
+
export FORK=wshihadeh
|
79
|
+
bundle exec cap ${stage} deploy:auto
|
80
|
+
```
|
81
|
+
|
82
|
+
- Check Stage status
|
83
|
+
|
84
|
+
```
|
85
|
+
bundle exec cap ${your_stage_name} docker:deploy:info
|
86
|
+
```
|
87
|
+
|
88
|
+
|
89
|
+
- Stop a given stack
|
90
|
+
|
91
|
+
```
|
92
|
+
bundle exec cap ${your_stage_name} docker:stop:${service_name}
|
93
|
+
```
|
@@ -0,0 +1,22 @@
|
|
1
|
+
version: '3.7'
|
2
|
+
|
3
|
+
networks:
|
4
|
+
<%%= NETWORK %>:
|
5
|
+
external: true
|
6
|
+
|
7
|
+
services:
|
8
|
+
|
9
|
+
# --- ELASTICSEARCH ---
|
10
|
+
|
11
|
+
elasticsearch:
|
12
|
+
image: ${ELASTICSEARCH_DOCKER_IMAGE}:${ELASTICSEARCH_DOCKER_IMAGE_TAG}
|
13
|
+
ports:
|
14
|
+
- ${ELASTIC_FIRST_PORT}:9200/tcp
|
15
|
+
- ${ELASTIC_SECOND_PORT}:9300/tcp
|
16
|
+
environment:
|
17
|
+
$$$$$$$$PWD/config: /usr/share/elasticsearch/config
|
18
|
+
$$$$$$$$PWD/esdata: /usr/share/elasticsearch/data
|
19
|
+
deploy:
|
20
|
+
replicas: 1
|
21
|
+
networks:
|
22
|
+
- <%%= NETWORK %>
|
@@ -0,0 +1,43 @@
|
|
1
|
+
version: '3.7'
|
2
|
+
|
3
|
+
networks:
|
4
|
+
<%%= NETWORK %>:
|
5
|
+
external: true
|
6
|
+
|
7
|
+
services:
|
8
|
+
|
9
|
+
mongo_db:
|
10
|
+
image: ${ERRBIT_DB_DOCKER_IMAGE}:${ERRBIT_DB_DOCKER_IMAGE_TAG}
|
11
|
+
volumes:
|
12
|
+
- ${MONGO_VOLUME}:/data/db
|
13
|
+
deploy:
|
14
|
+
replicas: 1
|
15
|
+
networks:
|
16
|
+
- <%%= NETWORK %>
|
17
|
+
|
18
|
+
errbit_web:
|
19
|
+
image: ${ERRBIT_DOCKER_IMAGE}:${ERRBIT_DOCKER_IMAGE_TAG}
|
20
|
+
environment:
|
21
|
+
SECRET_KEY_BASE: 152944e50d19ab5601f3ef9bcc15d428fe6cd0d0c94a832b13528f6d5b0f82e6e957a1638695c37af94b3c1bd0f98fb1d0a98951d9ce964c8781892be644ecd0
|
22
|
+
RACK_ENV: production
|
23
|
+
MONGO_URL: 'mongodb://mongo_db'
|
24
|
+
ERRBIT_HOST: ${ERRBIT_HOST}
|
25
|
+
ERRBIT_PROTOCOL: ${ERRBIT_PROTOCOL}
|
26
|
+
ERRBIT_PORT: ${ERRBIT_PORT}
|
27
|
+
GOOGLE_AUTHENTICATION: 'false'
|
28
|
+
GITHUB_AUTHENTICATION: 'false'
|
29
|
+
ERRBIT_LOG_LOCATION: 'STDOUT'
|
30
|
+
PORT: '8080'
|
31
|
+
ERRBIT_USER_HAS_USERNAME: 'true'
|
32
|
+
ERRBIT_PER_APP_NOTIFY_AT_NOTICES: 'true'
|
33
|
+
LDAP_HOST: ${LDAP_HOST}
|
34
|
+
LDAP_USER: ${LDAP_USER}
|
35
|
+
LDAP_PASSWORD: ${LDAP_PASSWORD}
|
36
|
+
http_proxy: ${HTTP_PROXY}
|
37
|
+
https_proxy: ${HTTPS_PROXY}
|
38
|
+
no_proxy: ${NO_PROXY}
|
39
|
+
healthcheck:
|
40
|
+
test: "curl --fail http://localhost:8080/users/sign_in || exit 1"
|
41
|
+
interval: 5s
|
42
|
+
networks:
|
43
|
+
- <%%= NETWORK %>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
version: '3.7'
|
2
|
+
|
3
|
+
networks:
|
4
|
+
<%%= NETWORK %>:
|
5
|
+
external: true
|
6
|
+
|
7
|
+
services:
|
8
|
+
|
9
|
+
mysql:
|
10
|
+
image: ${MYSQL_DOCKER_IMAGE}:${MYSQL_DOCKER_IMAGE_TAG}
|
11
|
+
volumes:
|
12
|
+
- ${MYSQL_VOLUME}:/var/lib/mysql
|
13
|
+
environment:
|
14
|
+
- MYSQL_ROOT_PASSWORD=dummy
|
15
|
+
deploy:
|
16
|
+
networks:
|
17
|
+
- <%%= NETWORK %>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
version: '3.7'
|
2
|
+
|
3
|
+
networks:
|
4
|
+
<%%= NETWORK %>:
|
5
|
+
external: true
|
6
|
+
|
7
|
+
services:
|
8
|
+
|
9
|
+
# --- NGINX ---
|
10
|
+
|
11
|
+
nginx:
|
12
|
+
image: ${NGINX_DOCKER_IMAGE}:${NGINX_DOCKER_IMAGE_TAG}
|
13
|
+
ports:
|
14
|
+
- '${PORT_HTTP}:80'
|
15
|
+
- '${PORT_HTTPS}:443'
|
16
|
+
deploy:
|
17
|
+
replicas: 1
|
18
|
+
update_config:
|
19
|
+
parallelism: 1
|
20
|
+
delay: 3s
|
21
|
+
networks:
|
22
|
+
- <%%= NETWORK %>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
version: '3.7'
|
2
|
+
|
3
|
+
networks:
|
4
|
+
<%%= NETWORK %>:
|
5
|
+
external: true
|
6
|
+
|
7
|
+
services:
|
8
|
+
|
9
|
+
# --- RABBITMQ ---
|
10
|
+
|
11
|
+
rabbitmq:
|
12
|
+
image: ${RABBITMQ_DOCKER_IMAGE}:${RABBITMQ_DOCKER_IMAGE_TAG}
|
13
|
+
hostname: rabbitmq
|
14
|
+
volumes:
|
15
|
+
- ${RABBITMQ_VOLUME}:/var/lib/rabbitmq
|
16
|
+
deploy:
|
17
|
+
replicas: 1
|
18
|
+
networks:
|
19
|
+
- <%%= NETWORK %>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
version: '3.7'
|
2
|
+
|
3
|
+
networks:
|
4
|
+
<%%= NETWORK %>:
|
5
|
+
external: true
|
6
|
+
|
7
|
+
services:
|
8
|
+
|
9
|
+
redis:
|
10
|
+
image: ${DOCKER_IMAGE_PREFIX}${REDIS_DOCKER_IMAGE}:${REDIS_DOCKER_IMAGE_TAG}
|
11
|
+
ports:
|
12
|
+
- '${PORT}:6379'
|
13
|
+
volumes:
|
14
|
+
- ${NFS_MOUNT}:/data
|
15
|
+
command: ['redis-server', '/usr/local/etc/redis/redis.conf']
|
16
|
+
deploy:
|
17
|
+
replicas: 1
|
18
|
+
networks:
|
19
|
+
- <%%= NETWORK %>
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Load DSL and set up stages
|
4
|
+
require 'capistrano/setup'
|
5
|
+
|
6
|
+
# Include default deployment tasks
|
7
|
+
require 'capistrano/deploy'
|
8
|
+
|
9
|
+
require 'shellwords'
|
10
|
+
|
11
|
+
# Load the SCM plugin appropriate to your project:
|
12
|
+
#
|
13
|
+
# require "capistrano/scm/hg"
|
14
|
+
# install_plugin Capistrano::SCM::Hg
|
15
|
+
# or
|
16
|
+
# require "capistrano/scm/svn"
|
17
|
+
# install_plugin Capistrano::SCM::Svn
|
18
|
+
# or
|
19
|
+
require 'swarm_orca'
|
20
|
+
|
21
|
+
scm = ENV.fetch('SCM', 'git')
|
22
|
+
require "capistrano/scm/#{scm}"
|
23
|
+
install_plugin Module.const_get("Capistrano::SCM::#{scm.capitalize}")
|
24
|
+
|
25
|
+
# Include tasks from other gems included in your Gemfile
|
26
|
+
#
|
27
|
+
# For documentation on these, see for example:
|
28
|
+
#
|
29
|
+
# https://github.com/capistrano/rvm
|
30
|
+
# https://github.com/capistrano/rbenv
|
31
|
+
# https://github.com/capistrano/chruby
|
32
|
+
# https://github.com/capistrano/bundler
|
33
|
+
# https://github.com/capistrano/rails
|
34
|
+
# https://github.com/capistrano/passenger
|
35
|
+
#
|
36
|
+
# require "capistrano/rvm"
|
37
|
+
# require "capistrano/rbenv"
|
38
|
+
# require "capistrano/chruby"
|
39
|
+
# require "capistrano/bundler"
|
40
|
+
# require "capistrano/rails/assets"
|
41
|
+
# require "capistrano/rails/migrations"
|
42
|
+
# require "capistrano/passenger"
|
43
|
+
|
44
|
+
# Load custom tasks from `lib/capistrano/tasks` if you have any defined
|
45
|
+
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# config valid only for current version of Capistrano
|
2
|
+
lock "3.8.0"
|
3
|
+
require "capistrano/swarm_orca/set_global_config"
|
4
|
+
|
5
|
+
# Overwrite swarm_orca global vars
|
6
|
+
|
7
|
+
set :fork, "<%= @git_fork %>"
|
8
|
+
set (:network) { "<%= @docker_network %>" }
|
9
|
+
|
10
|
+
#Overwite gem global vars
|
11
|
+
#set (:repo_url) { ENV["REPO_URL"] || "git@github.com:#{ENV.fetch('FORK', fetch(:fork))}/orca.git" }
|
12
|
+
|
13
|
+
#set :keep_releases, 5
|
14
|
+
#set (:application) { "orca" }
|
15
|
+
#set (:deploy_to) { "/home/deploy/orca" }
|
16
|
+
#set :pty, true
|
17
|
+
|
18
|
+
#set (:service_stacks) { %w(elasticsearch rabbitmq errbit mysql) }
|
19
|
+
#set (:service_stacks_with_build_image) { %w(nginx redis) }
|
20
|
+
#set (:db_apps_stacks_mapping), {}
|
21
|
+
|
22
|
+
#set (:elasticsearch_apps) { }
|
23
|
+
#set the path containing docker command
|
24
|
+
#set (:docker_path) { "" }
|
25
|
+
set (:docker_erb_templates) { true }
|
26
|
+
#set (:docker_cleanup) { %w(yes 1 true).include? ENV.fetch("PRUNE", 'true') }
|
27
|
+
#set (:auto_image_build){ %w(yes 1 true).include? ENV.fetch("BUILD_IMAGE", 'true') }
|
28
|
+
|
29
|
+
require "capistrano/swarm_orca/deploy"
|
30
|
+
require "capistrano/swarm_orca/docker"
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
server '${SERVER_NAME}', user: '${USER}',
|
4
|
+
roles: %w[
|
5
|
+
mysql
|
6
|
+
rabbitmq
|
7
|
+
nginx
|
8
|
+
elasticsearch
|
9
|
+
redis
|
10
|
+
swarm_manager
|
11
|
+
]
|
12
|
+
|
13
|
+
set :shared, network: fetch(:network)
|
14
|
+
|
15
|
+
set :mysql,
|
16
|
+
stack_name: 'mysql',
|
17
|
+
mysql_docker_image: 'mysql',
|
18
|
+
mysql_docker_image_tag: '5.7',
|
19
|
+
mysql_volume: "#{fetch(:deploy_to)}/mysql"
|
20
|
+
|
21
|
+
set :rabbitmq,
|
22
|
+
stack_name: 'rabbitmq',
|
23
|
+
rabbitmq_docker_image: 'rabbitmq',
|
24
|
+
rabbitmq_docker_image_tag: '3.6-management',
|
25
|
+
rabbitmq_volume: "#{fetch(:deploy_to)}/rabbitmq"
|
26
|
+
|
27
|
+
set :nginx,
|
28
|
+
stack_name: 'nginx',
|
29
|
+
nginx_docker_image: 'nginx',
|
30
|
+
nginx_docker_image_tag: 'latest',
|
31
|
+
port_http: '80',
|
32
|
+
port_https: '443'
|
33
|
+
|
34
|
+
set :redis,
|
35
|
+
stack_name: 'redis',
|
36
|
+
docker_image_prefix: 'docker.io/',
|
37
|
+
redis_docker_image: 'redis',
|
38
|
+
redis_docker_image_tag: 'latest',
|
39
|
+
nfs_mount: "#{fetch(:deploy_to)}/redis",
|
40
|
+
port: '6379'
|
41
|
+
|
42
|
+
set :elasticsearch,
|
43
|
+
stack_name: 'elasticsearch',
|
44
|
+
elasticsearch_docker_image: 'elasticsearch',
|
45
|
+
elasticsearch_docker_image_tag: '5.4.0-alpine',
|
46
|
+
elastic_first_port: '9200',
|
47
|
+
elastic_second_port: '9300'
|
48
|
+
|
49
|
+
set :errbit,
|
50
|
+
stack_name: 'errbit',
|
51
|
+
errbit_docker_image: 'docker.io/errbit/errbit',
|
52
|
+
errbit_db_docker_image: 'mongo',
|
53
|
+
errbit_docker_image_tag: 'latest',
|
54
|
+
errbit_db_docker_image_tag: '3.2',
|
55
|
+
errbit_host: '${ERRBIT_HOST}',
|
56
|
+
errbit_protocol: 'http',
|
57
|
+
errbit_port: '80',
|
58
|
+
ldap_host: '${LDAP_HOST}',
|
59
|
+
ldap_user: '${LDAP_USER}',
|
60
|
+
ldap_password: '${LDAP_PASSWORD}',
|
61
|
+
http_proxy: '${HTTP_PROXY}',
|
62
|
+
https_proxy: '${hTTPS_PROXY}',
|
63
|
+
no_proxy: '${NO_PROXY}',
|
64
|
+
mongo_volume: "#{fetch(:deploy_to)}/mongo"
|