OSDN Git Service

rename image.
[metasearch/grid-chef-repo.git] / cookbooks / minim-server / recipes / docker-compose.rb
1 #
2 # Cookbook Name:: minim-server
3 # Recipe:: docker-compose
4 #
5 # Copyright 2018-2019, whitestar
6 #
7 # Licensed under the Apache License, Version 2.0 (the "License");
8 # you may not use this file except in compliance with the License.
9 # You may obtain a copy of the License at
10 #
11 #     http://www.apache.org/licenses/LICENSE-2.0
12 #
13 # Unless required by applicable law or agreed to in writing, software
14 # distributed under the License is distributed on an "AS IS" BASIS,
15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 # See the License for the specific language governing permissions and
17 # limitations under the License.
18 #
19
20 doc_url = 'https://hub.docker.com/r/tromatik/docker-minimserver/'
21
22 include_recipe 'platform_utils::kernel_user_namespace'
23 include_recipe 'docker-grid::compose'
24
25 app_dir = node['minim-server']['docker-compose']['app_dir']
26 data_dir = node['minim-server']['docker-compose']['data_dir']
27
28 [
29   app_dir,
30   data_dir,
31 ].each {|dir|
32   resources(directory: dir) rescue directory dir do
33     owner 'root'
34     group 'root'
35     mode '0755'
36     recursive true
37   end
38 }
39
40 config_srvs = node['minim-server']['docker-compose']['config']['services']
41 override_config_srvs = node.override['minim-server']['docker-compose']['config']['services']
42 force_override_config_srvs = node.force_override['minim-server']['docker-compose']['config']['services']
43 envs = {}
44 vols = config_srvs['minim-server']['volumes'].to_a
45
46 vols.push("#{data_dir}:/opt/minimserver/data:rw")
47
48 # merge environment hash
49 force_override_config_srvs['minim-server']['environment'] = envs unless envs.empty?
50 # reset vlumes array.
51 override_config_srvs['minim-server']['volumes'] = vols unless vols.empty?
52
53 [
54   '.env',
55   'docker-compose.yml',
56   'minimserver.config',
57 ].each {|conf_file|
58   template "#{app_dir}/#{conf_file}" do
59     source "opt/docker-compose/app/minim-server/#{conf_file}"
60     owner 'root'
61     group 'root'
62     mode '0644'
63   end
64 }
65
66 dockerfile_tpl = 'Dockerfile'
67 dockerfile_tpl = 'Dockerfile.armhf' if node['kernel']['machine'] == 'armv7l'
68 template "#{app_dir}/Dockerfile" do
69   source "opt/docker-compose/app/minim-server/#{dockerfile_tpl}"
70   owner 'root'
71   group 'root'
72   mode '0644'
73 end
74
75 # autopilot
76 srv = 'minim-server'
77 template "/etc/cron.d/#{srv}-local" do
78   source  "etc/cron.d/#{srv}-local"
79   owner 'root'
80   group 'root'
81   mode '0644'
82   action :delete unless node['minim-server']['docker-compose']['autopilot']['enabled']
83 end
84
85 log 'minim-server docker-compose post install message' do
86   message <<-"EOM"
87 Note: You must execute the following command manually.
88   See #{doc_url}
89   * Start:
90     $ cd #{app_dir}
91     $ docker-compose up -d
92   * Stop
93     $ docker-compose down
94 EOM
95 end