Sha256: d483560b9d29f50c4ba992c65254b2a52cbed0931ce916cced8383904dbcd150
Contents?: true
Size: 1.08 KB
Versions: 1
Compression:
Stored size: 1.08 KB
Contents
namespace :"docker" do def image_name file file.sub('Dockerfile.','') end def tag tag = `git reflog --decorate -1`.match(/tag: (?<tag>.*?),/) tag.nil? ? "latest" : tag[:tag] end def docker_repo "#{@docker_repo}/" end def run_before_hooks file File.open(file, 'r') {|f| @file = f.read } hooks = @file.scan(/^##=\s?(.*)/) hooks.each do |hook| sh hook.first end end files = Dir["Dockerfile*"] task :build => files.map { |file| "docker:build:#{image_name file}"} task :push => files.map { |file| "docker:push:#{image_name file}"} namespace :build do files.each do |file| desc "Build #{file}" task image_name(file).to_sym do run_before_hooks file sh "ln -snf #{file} Dockerfile" sh "docker build -t '#{docker_repo}#{image_name file}:#{tag}' ." sh "rm -f Dockerfile" end end end namespace :push do files.each do |file| desc "Push #{file}" task image_name(file).to_sym do sh "docker push '#{docker_repo}#{image_name file}:#{tag}'" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
docker-construct-0.0.1 | tasks/docker-construct.rake |