Skip to content

Commit

Permalink
Added a build script for the kotlin images.
Browse files Browse the repository at this point in the history
  • Loading branch information
treeder committed Nov 29, 2016
1 parent 0037e68 commit fd60a8d
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 5 deletions.
1 change: 1 addition & 0 deletions kotlin/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
FROM iron/java:1.8
26 changes: 26 additions & 0 deletions kotlin/build.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
require 'open3'
require_relative '../utils/builder'

name = "iron/kotlin"

# latest doesn't actually contain go, so swap dev and latest in this build

Dir.chdir 'dev'
tag = "dev"
build("#{name}:#{tag}")

v, status = Open3.capture2e("docker run --rm #{name}:#{tag} kotlin -version")
v = v.strip
p v
# returns: Kotlin version 1.0.5 (JRE 1.8.0_66-internal-alpine-r2-b17)
v = v.split(' ')[2]
p v
new_tags = vtag(name, tag, v, true)

Dir.chdir '../'
p Dir.pwd
tag = "latest"
build("#{name}:#{tag}")
new_tags += vtag(name, tag, v, false)

push_all(name, new_tags)
2 changes: 1 addition & 1 deletion kotlin/dev/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ docker run -it --rm -v "$PWD":/app -w /app iron/java:1.8 java -jar hello.jar Wor
docker build -t iron/kotlin:dev .
```

Tag the version, check it with `docker run --rm iron/kotlin kotlin -version`:
Tag the version, check it with `docker run --rm iron/kotlin:dev kotlin -version`:

```sh
docker tag -f iron/kotlin:dev iron/kotlin:X-dev
Expand Down
22 changes: 18 additions & 4 deletions utils/builder.rb
Original file line number Diff line number Diff line change
Expand Up @@ -38,16 +38,30 @@ def build(name)
stream_exec(cmd)
end

# vtag tags the versions and returns which tags it added
# numtags is how many version tags starting from patch. If 1, then only patch will be applied.
def vtag(name, fromtag, v, dev=false, numtags=3)
tags_added = []
newnum = [numtags, v.split(".").length()].min()
newnum.times do |i|
to = "#{name}:#{v}"
to += "-dev" if dev
t = v
t += "-dev" if dev
to = "#{name}:#{t}"
from = "#{name}:#{fromtag}"
puts "Tagging #{from} with #{to}"
out, status = Open3.capture2e("docker tag #{from} #{to}")
puts out
status = stream_exec("docker tag #{from} #{to}")
tags_added << t
v = v[0...v.rindex('.')] if i < (newnum - 1)
end
return tags_added
end

def push_all(name, tags)
tags << "latest"
tags << "dev"
tags.each do |t|
fullname = "#{name}:#{t}"
puts "Pushing #{fullname}"
status = stream_exec("docker push #{fullname}")
end
end

0 comments on commit fd60a8d

Please sign in to comment.