Class: OdaniaOps::Cli::Docker

Inherits:
Thor
  • Object
show all
Defined in:
lib/odania_ops/cli/docker.rb

Instance Method Summary collapse

Instance Method Details

#base_image_check(folder) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/odania_ops/cli/docker.rb', line 29

def base_image_check(folder)
	OdaniaOps::Helper::Docker.

	failed_images = []
	Dir.glob("#{folder}/**/Dockerfile").each do |file|
		result = check_latest_base_image file
		failed_images << result unless result
	end

	unless failed_images.empty?
		puts
		puts
		puts 'The following images have newer base images:'
		puts failed_images.inspect
		exit 1
	end
end

#build(folder, image_name, version_number = nil) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/odania_ops/cli/docker.rb', line 5

def build(folder, image_name, version_number=nil)
	OdaniaOps::Helper::Docker.

	build_number = version_number.nil? ? get_highest_build_number(image_name) + 1 : version_number.to_i
	build_tag = "v#{build_number}"
	$logger.info "Building version #{build_tag}"

	base_image = get_base_image File.expand_path('Dockerfile', folder)
	$logger.info "Pulling base image #{base_image}"
	OdaniaOps::Helper::Shell.execute("docker pull #{base_image}")

	$logger.info "Building #{image_name}"
	OdaniaOps::Helper::Shell.execute("cd #{folder} && docker build --no-cache --force-rm -t #{image_name}:#{build_tag} .")

	$logger.info "Tagging #{build_tag} as latest"
	OdaniaOps::Helper::Docker.remote_tag "#{image_name}:#{build_tag}"
	OdaniaOps::Helper::Docker.remote_tag "#{image_name}:#{build_tag}", "#{image_name}:latest"

	$logger.info "Pushing #{build_tag}"
	OdaniaOps::Helper::Docker.push image_name, build_tag
	OdaniaOps::Helper::Docker.push image_name, 'latest'
end