Skip to content

Commit e5fb425

Browse files
Move @sha256 part to the image path for Docker LRP rootfs (cloudfoundry#3889)
Co-authored-by: Nicolas Bender <[email protected]>
1 parent 44d70c0 commit e5fb425

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

lib/cloud_controller/diego/docker/docker_uri_converter.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@ def convert(docker_uri)
66
raise UriUtils::InvalidDockerURI.new "Docker URI [#{docker_uri}] should not contain scheme" if docker_uri.include? '://'
77

88
host, path, tag = UriUtils.parse_docker_uri(docker_uri)
9+
10+
if !tag.nil? && tag.start_with?('@sha256:')
11+
path = "#{path}@sha256"
12+
tag.slice!('@sha256:')
13+
end
14+
915
Addressable::URI.new(scheme: 'docker', host: host, path: path, fragment: tag).to_s
1016
end
1117
end

spec/unit/lib/cloud_controller/diego/docker/docker_uri_converter_spec.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,14 @@ module VCAP::CloudController
3838
expect(converter.convert(image_url)).to eq('docker:///user/image#tag')
3939
end
4040
end
41+
42+
context('and a user/image@sha256:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08') do
43+
let(:image_url) { 'user/image@sha256:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08' }
44+
45+
it 'builds the correct rootFS path' do
46+
expect(converter.convert(image_url)).to eq('docker:///user/image@sha256#9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08')
47+
end
48+
end
4149
end
4250

4351
context('and the docker image url has host:port') do

0 commit comments

Comments
 (0)