mirror of https://github.com/portainer/portainer
fix(images): ensure latest image (#5274)
parent
c56c236e3a
commit
fe07815fc7
|
@ -53,33 +53,43 @@ function ImageHelperFactory() {
|
||||||
*/
|
*/
|
||||||
export function buildImageFullURI(imageModel) {
|
export function buildImageFullURI(imageModel) {
|
||||||
if (!imageModel.UseRegistry) {
|
if (!imageModel.UseRegistry) {
|
||||||
return imageModel.Image;
|
return ensureTag(imageModel.Image);
|
||||||
}
|
}
|
||||||
|
|
||||||
let fullImageName = '';
|
const imageName = buildImageFullURIWithRegistry(imageModel);
|
||||||
|
|
||||||
|
return ensureTag(imageName);
|
||||||
|
|
||||||
|
function ensureTag(image, defaultTag = 'latest') {
|
||||||
|
return image.includes(':') ? image : `${image}:${defaultTag}`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildImageFullURIWithRegistry(imageModel) {
|
||||||
switch (imageModel.Registry.Type) {
|
switch (imageModel.Registry.Type) {
|
||||||
case RegistryTypes.GITLAB:
|
case RegistryTypes.GITLAB:
|
||||||
fullImageName = imageModel.Registry.URL + '/' + imageModel.Registry.Gitlab.ProjectPath + (imageModel.Image.startsWith(':') ? '' : '/') + imageModel.Image;
|
return buildImageURIForGitLab(imageModel);
|
||||||
break;
|
|
||||||
case RegistryTypes.ANONYMOUS:
|
|
||||||
fullImageName = imageModel.Image;
|
|
||||||
break;
|
|
||||||
case RegistryTypes.QUAY:
|
case RegistryTypes.QUAY:
|
||||||
fullImageName =
|
return buildImageURIForQuay(imageModel);
|
||||||
(imageModel.Registry.URL ? imageModel.Registry.URL + '/' : '') +
|
case RegistryTypes.ANONYMOUS:
|
||||||
(imageModel.Registry.Quay.UseOrganisation ? imageModel.Registry.Quay.OrganisationName : imageModel.Registry.Username) +
|
return imageModel.Image;
|
||||||
'/' +
|
|
||||||
imageModel.Image;
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
fullImageName = imageModel.Registry.URL + '/' + imageModel.Image;
|
return buildImageURIForOtherRegistry(imageModel);
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!imageModel.Image.includes(':')) {
|
function buildImageURIForGitLab(imageModel) {
|
||||||
fullImageName += ':latest';
|
const slash = imageModel.Image.startsWith(':') ? '' : '/';
|
||||||
|
return `${imageModel.Registry.URL}/${imageModel.Registry.Gitlab.ProjectPath}${slash}${imageModel.Image}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
return fullImageName;
|
function buildImageURIForQuay(imageModel) {
|
||||||
|
const name = imageModel.Registry.Quay.UseOrganisation ? imageModel.Registry.Quay.OrganisationName : imageModel.Registry.Username;
|
||||||
|
const url = imageModel.Registry.URL ? imageModel.Registry.URL + '/' : '';
|
||||||
|
return `${url}${name}/${imageModel.Image}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
function buildImageURIForOtherRegistry(imageModel) {
|
||||||
|
const url = imageModel.Registry.URL ? imageModel.Registry.URL + '/' : '';
|
||||||
|
return url + imageModel.Image;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue