docker-sync 0.5.4 → 0.5.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/docker-sync/sync_strategy/native_osx.rb +10 -5
- data/lib/docker-sync/sync_strategy/unison.rb +19 -4
- data/lib/docker-sync/update_check.rb +3 -15
- data/lib/docker-sync/upgrade_check.rb +18 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a88e284e5884eb996bd63ce35feef44508aa275d
|
4
|
+
data.tar.gz: 7d0c466307ff7b6cb86336e0b729f1795f0f376a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8823db30b0c6ca9eaa21aad241b6525595071028e75db3c307d295a4b1d3cf69cd0fced01a8a4757a73071f0b5135eaa3fc26186bbb499e17cd556d56f06dc16
|
7
|
+
data.tar.gz: 0a0c5a4759a34b0dbec794903529f61a515918f5e46b160af8acd1b242e001d49e04fc5dd32bb7dcb634efc90d9a5c63ea9cb5758d8baefa87ab78b790d2e68b
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.5
|
@@ -23,12 +23,12 @@ module DockerSync
|
|
23
23
|
if @options.key?('image')
|
24
24
|
@docker_image = @options['image']
|
25
25
|
else
|
26
|
-
@docker_image = 'eugenmayer/unison:
|
26
|
+
@docker_image = 'eugenmayer/unison:2.51.2.0'
|
27
27
|
end
|
28
28
|
|
29
29
|
# TODO: remove this when we have a more stable image, but for now, we need this
|
30
30
|
uc = UpdateChecker.new
|
31
|
-
uc.
|
31
|
+
uc.check_unison_image
|
32
32
|
|
33
33
|
begin
|
34
34
|
Dependencies::Docker.ensure!
|
@@ -47,8 +47,8 @@ module DockerSync
|
|
47
47
|
env = {}
|
48
48
|
raise 'sync_user is no longer supported, since it is not needed. Use sync_userid only please' if @options.key?('sync_user')
|
49
49
|
|
50
|
-
|
51
|
-
env['
|
50
|
+
env['UNISON_SRC'] = '/host_sync'
|
51
|
+
env['UNISON_DEST'] = '/app_sync'
|
52
52
|
|
53
53
|
env['UNISON_ARGS'] = ''
|
54
54
|
if @options.key?('sync_args')
|
@@ -57,7 +57,12 @@ module DockerSync
|
|
57
57
|
env['UNISON_ARGS'] = sync_args
|
58
58
|
end
|
59
59
|
|
60
|
-
|
60
|
+
ignore_strings = expand_ignore_strings
|
61
|
+
env['UNISON_ARGS'] << ' ' << ignore_strings.join(' ')
|
62
|
+
env['UNISON_ARGS'] << ' ' << sync_prefer
|
63
|
+
env['UNISON_ARGS'] << ' -numericids -auto -batch'
|
64
|
+
env['UNISON_WATCH_ARGS'] = '-repeat watch'
|
65
|
+
|
61
66
|
env['MAX_INOTIFY_WATCHES'] = @options['max_inotify_watches'] if @options.key?('max_inotify_watches')
|
62
67
|
if @options['sync_userid'] == 'from_host'
|
63
68
|
env['OWNER_UID'] = Process.uid
|
@@ -22,7 +22,7 @@ module DockerSync
|
|
22
22
|
if @options.key?('image')
|
23
23
|
@docker_image = @options['image']
|
24
24
|
else
|
25
|
-
@docker_image = 'eugenmayer/unison:0
|
25
|
+
@docker_image = 'eugenmayer/unison:2.51.2.0'
|
26
26
|
end
|
27
27
|
begin
|
28
28
|
Dependencies::Unison.ensure!
|
@@ -147,10 +147,21 @@ module DockerSync
|
|
147
147
|
container_name = get_container_name
|
148
148
|
volume_name = get_volume_name
|
149
149
|
env = {}
|
150
|
-
|
150
|
+
raise 'sync_user is no longer supported, since it ise no needed, use sync_userid only please' if @options.key?('sync_user')
|
151
151
|
|
152
|
+
env['UNISON_SRC'] = '-socket 5000'
|
153
|
+
env['UNISON_DEST'] = '/app_sync'
|
154
|
+
|
155
|
+
|
156
|
+
env['MONIT_ENABLE'] = 'false'
|
157
|
+
env['MONIT_INTERVAL'] = ''
|
158
|
+
env['MONIT_HIGH_CPU_CYCLES'] = ''
|
159
|
+
|
160
|
+
env['UNISON_ARGS'] = ''
|
152
161
|
ignore_strings = expand_ignore_strings
|
153
|
-
env['
|
162
|
+
env['UNISON_ARGS'] << ignore_strings.join(' ')
|
163
|
+
env['UNISON_WATCH_ARGS'] = ''
|
164
|
+
|
154
165
|
env['MAX_INOTIFY_WATCHES'] = @options['max_inotify_watches'] if @options.key?('max_inotify_watches')
|
155
166
|
if @options['sync_userid'] == 'from_host'
|
156
167
|
env['OWNER_UID'] = Process.uid
|
@@ -158,6 +169,10 @@ module DockerSync
|
|
158
169
|
env['OWNER_UID'] = @options['sync_userid'] if @options.key?('sync_userid')
|
159
170
|
end
|
160
171
|
|
172
|
+
# start unison-image in unison socket mode mode
|
173
|
+
env['HOSTSYNC_ENABLE']=0
|
174
|
+
env['UNISONSOCKET_ENABLE']=1
|
175
|
+
|
161
176
|
additional_docker_env = env.map{ |key,value| "-e #{key}=\"#{value}\"" }.join(' ')
|
162
177
|
running = `docker ps --filter 'status=running' --filter 'name=#{container_name}' --format "{{.Names}}" | grep '^#{container_name}$'`
|
163
178
|
if running == ''
|
@@ -167,7 +182,7 @@ module DockerSync
|
|
167
182
|
say_status 'ok', "creating #{container_name} container", :white if @options['verbose']
|
168
183
|
run_privileged = ''
|
169
184
|
run_privileged = '--privileged' if @options.key?('max_inotify_watches') #TODO: replace by the minimum capabilities required
|
170
|
-
cmd = "docker run -p '#{@options['sync_host_ip']}::#{UNISON_CONTAINER_PORT}' -v #{volume_name}:#{@options['dest']} -e
|
185
|
+
cmd = "docker run -p '#{@options['sync_host_ip']}::#{UNISON_CONTAINER_PORT}' -v #{volume_name}:#{@options['dest']} -e APP_VOLUME=#{@options['dest']} -e TZ=${TZ-`readlink /etc/localtime | sed -e 's,/usr/share/zoneinfo/,,'`} #{additional_docker_env} #{run_privileged} --name #{container_name} -d #{@docker_image}"
|
171
186
|
else
|
172
187
|
say_status 'ok', "starting #{container_name} container", :white if @options['verbose']
|
173
188
|
cmd = "docker start #{container_name} && docker exec #{container_name} supervisorctl restart unison"
|
@@ -25,7 +25,6 @@ class UpdateChecker
|
|
25
25
|
# do not check the image if its the first run - since this it will be downloaded anyway
|
26
26
|
unless @config.first_run?
|
27
27
|
unless has_internet?
|
28
|
-
check_unison_hostsync_image
|
29
28
|
check_unison_image
|
30
29
|
check_rsync_image
|
31
30
|
# stop if there was an update
|
@@ -47,6 +46,8 @@ class UpdateChecker
|
|
47
46
|
def should_run
|
48
47
|
return false unless has_internet?
|
49
48
|
now = DateTime.now
|
49
|
+
return true if @config['update_last_check'].nil?
|
50
|
+
|
50
51
|
last_check = DateTime.iso8601(@config['update_last_check'])
|
51
52
|
check_after_days = 2
|
52
53
|
if now - last_check > check_after_days
|
@@ -69,24 +70,11 @@ class UpdateChecker
|
|
69
70
|
|
70
71
|
end
|
71
72
|
|
72
|
-
def check_unison_hostsync_image(silent = false)
|
73
|
-
return if ENV['DOCKER_SYNC_SKIP_UPDATE']
|
74
|
-
say_status 'ok','Checking if a newer native_osx (unison:hostsync_0.2) image is available' unless silent
|
75
|
-
|
76
|
-
if system("docker pull eugenmayer/unison:hostsync_0.2 | grep 'Downloaded newer image for'")
|
77
|
-
say_status 'ok', 'Downloaded newer image for native_osx', :green unless silent
|
78
|
-
@newer_image_found = true
|
79
|
-
else
|
80
|
-
say_status 'ok', 'No newer image found - current image is up to date.' unless silent
|
81
|
-
end
|
82
|
-
|
83
|
-
end
|
84
|
-
|
85
73
|
def check_unison_image
|
86
74
|
return if ENV['DOCKER_SYNC_SKIP_UPDATE']
|
87
75
|
say_status 'ok','Checking if a newer unison image is available'
|
88
76
|
|
89
|
-
if system("docker pull eugenmayer/unison | grep 'Downloaded newer image for'")
|
77
|
+
if system("docker pull eugenmayer/unison:2.51.2.0 | grep 'Downloaded newer image for'")
|
90
78
|
say_status 'ok', 'Downloaded newer image for unison', :green
|
91
79
|
@newer_image_found = true
|
92
80
|
else
|
@@ -40,7 +40,9 @@ class UpgradeChecker
|
|
40
40
|
|
41
41
|
def self.get_current_version
|
42
42
|
path = File.expand_path('../../../', __FILE__)
|
43
|
-
|
43
|
+
version = File.read("#{path}/VERSION")
|
44
|
+
version.gsub!(/ *\n+/, "\n")
|
45
|
+
version.strip
|
44
46
|
end
|
45
47
|
|
46
48
|
def docker_sync_update_check
|
@@ -98,7 +100,7 @@ class UpgradeChecker
|
|
98
100
|
|
99
101
|
if Gem::Version.new(last_upgraded_version) < Gem::Version.new('0.4.2')
|
100
102
|
checker = UpdateChecker.new
|
101
|
-
checker.
|
103
|
+
checker.check_unison_image
|
102
104
|
|
103
105
|
Thor::Shell::Basic.new.say_status 'warning', "The native_osx is NOW ONLY for docker-for-mac, this is due to https://github.com/EugenMayer/docker-sync/issues/346\n\nThat means that unison is picked as a default automatically if you use docker-machine", :red
|
104
106
|
|
@@ -109,17 +111,28 @@ class UpgradeChecker
|
|
109
111
|
|
110
112
|
if Gem::Version.new(last_upgraded_version) < Gem::Version.new('0.4.3')
|
111
113
|
checker = UpdateChecker.new
|
112
|
-
checker.
|
114
|
+
checker.check_unison_image
|
113
115
|
end
|
114
116
|
|
115
117
|
if Gem::Version.new(last_upgraded_version) < Gem::Version.new('0.4.4')
|
116
118
|
checker = UpdateChecker.new
|
117
|
-
checker.
|
119
|
+
checker.check_unison_image
|
118
120
|
end
|
119
121
|
|
120
122
|
if Gem::Version.new(last_upgraded_version) < Gem::Version.new('0.4.5')
|
121
123
|
checker = UpdateChecker.new
|
122
|
-
checker.
|
124
|
+
checker.check_unison_image
|
125
|
+
end
|
126
|
+
|
127
|
+
if Gem::Version.new(last_upgraded_version) < Gem::Version.new('0.5.5')
|
128
|
+
checker = UpdateChecker.new
|
129
|
+
checker.check_unison_image
|
130
|
+
|
131
|
+
Thor::Shell::Basic.new.say_status 'warning', "There has been a major unison update. Please clean and restart all your stacks. If you are using the unison strategy, please upgrade unison by doing 'brew update && brew upgrade unison' to upgrade to 2.51.2", :red
|
132
|
+
|
133
|
+
unless Thor::Shell::Basic.new.yes?('Just wanted you to know that! (y/N)')
|
134
|
+
exit 1
|
135
|
+
end
|
123
136
|
end
|
124
137
|
|
125
138
|
# update the upgrade_status
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: docker-sync
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eugen Mayer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-03-
|
11
|
+
date: 2018-03-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|