Commit | Line | Data |
---|---|---|
bc33afd9 S |
1 | # simple build file to be used locally by Sam |
2 | # | |
3 | require 'pty' | |
4 | ||
4669716b | 5 | $version = "1.3.0" |
bc33afd9 | 6 | |
399a0bba | 7 | $docker_squash = "https://github.com/jwilder/docker-squash/releases/download/v0.2.0/docker-squash-linux-amd64-v0.2.0.tar.gz" |
bc33afd9 | 8 | |
399a0bba SS |
9 | $base_image = "discourse/base:#{$version}" |
10 | $image = "discourse/discourse:#{$version}" | |
570c677f | 11 | $test = "discourse/discourse_test:#{$version}" |
bc33afd9 S |
12 | |
13 | if ENV["USER"] != "root" | |
14 | STDERR.puts "Build script must be ran as root due to docker-squash" | |
15 | exit 1 | |
16 | end | |
17 | ||
18 | def run(command) | |
19 | lines = [] | |
20 | PTY.spawn(command) do |stdin, stdout, pid| | |
21 | begin | |
22 | stdin.each do |line| | |
23 | lines << line | |
24 | puts line | |
25 | end | |
26 | rescue Errno::EIO | |
27 | # we are done | |
28 | end | |
29 | end | |
30 | ||
31 | lines | |
32 | end | |
33 | ||
34 | def ensure_docker_squash | |
35 | return if File.exist?("docker-squash") | |
36 | run ("wget #{$docker_squash}") | |
37 | run ("tar -xzvf *.tar.gz") | |
03bbcd0d | 38 | run ("rm -f docker-squash-linux*") |
bc33afd9 S |
39 | end |
40 | ||
41 | ensure_docker_squash | |
42 | ||
43 | def build(path, tag, is_base) | |
44 | lines = run("cd #{path} && docker build .") | |
45 | img = lines[-1]["successfully built ".length..-1].strip | |
46 | ||
47 | run("docker save #{img} | ./docker-squash -t #{tag} -verbose #{is_base && "-from root"} | docker load") | |
48 | end | |
49 | ||
50 | build("base",$base_image,true) | |
51 | build("discourse",$image,false) | |
570c677f | 52 | build("discourse_test",$test,false) |