docker-sync 0.5.4 → 0.5.5
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 +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
|