Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
isula-build
提交
98c0580e
I
isula-build
项目概览
openeuler
/
isula-build
通知
5
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
isula-build
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
98c0580e
编写于
8月 20, 2020
作者:
O
openeuler-ci-bot
提交者:
Gitee
8月 20, 2020
浏览文件
操作
浏览文件
下载
差异文件
!54 bugfix: fix --from can not pull image from remote registry
Merge pull request !54 from DCCooper/master
上级
bfce8ba4
de5f3a1c
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
90 addition
and
1 deletion
+90
-1
builder/dockerfile/add_copy.go
builder/dockerfile/add_copy.go
+7
-0
image/image.go
image/image.go
+1
-1
util/common.go
util/common.go
+3
-0
util/common_test.go
util/common_test.go
+79
-0
未找到文件。
builder/dockerfile/add_copy.go
浏览文件 @
98c0580e
...
...
@@ -138,6 +138,13 @@ func (c *cmdBuilder) getCopyContextDir(from string) (string, func(), error) {
}
}
// update cert path in case it is different between FROM and --from
server
,
err
:=
util
.
ParseServer
(
from
)
if
err
!=
nil
{
return
""
,
nil
,
err
}
c
.
stage
.
buildOpt
.
systemContext
.
DockerCertPath
=
filepath
.
Join
(
constant
.
DefaultCertRoot
,
server
)
// "from" is neither name nor index of stage, consider that "from" is image description
imgDesc
,
err
:=
prepareImage
(
&
image
.
PrepareImageOptions
{
Ctx
:
c
.
ctx
,
...
...
image/image.go
浏览文件 @
98c0580e
...
...
@@ -141,7 +141,7 @@ func pullAndGetImageInfo(opt *PrepareImageOptions) (types.ImageReference, *stora
// record the last pull error
var
errPull
error
const
tagSeperator
=
":"
const
tagSeperator
=
":
//
"
for
_
,
strImage
:=
range
candidates
{
if
transport
!=
util
.
DefaultTransport
{
transport
+=
tagSeperator
...
...
util/common.go
浏览文件 @
98c0580e
...
...
@@ -145,11 +145,14 @@ func ParseServer(server string) (string, error) {
}
// first trim prefix https:// and http://
server
=
strings
.
TrimPrefix
(
strings
.
TrimPrefix
(
server
,
"https://"
),
"http://"
)
// then trim prefix docker://
server
=
strings
.
TrimPrefix
(
server
,
DefaultTransport
)
// always get first part split by "/"
fields
:=
strings
.
Split
(
server
,
"/"
)
if
fields
[
0
]
==
""
{
return
""
,
errors
.
Errorf
(
"invalid registry address %s"
,
server
)
}
return
fields
[
0
],
nil
}
...
...
util/common_test.go
浏览文件 @
98c0580e
...
...
@@ -88,3 +88,82 @@ func TestCheckFileSize(t *testing.T) {
})
}
}
func
TestParseServer
(
t
*
testing
.
T
)
{
type
args
struct
{
server
string
}
tests
:=
[]
struct
{
name
string
args
args
want
string
wantErr
bool
}{
{
name
:
"TC1 - normal server address with http prefix"
,
args
:
args
{
server
:
"http://mydockerhub.org"
},
want
:
"mydockerhub.org"
,
wantErr
:
false
,
},
{
name
:
"TC2 - normal server address with https prefix"
,
args
:
args
{
server
:
"https://mydockerhub.org"
},
want
:
"mydockerhub.org"
,
wantErr
:
false
,
},
{
name
:
"TC3 - normal server address with docker prefix"
,
args
:
args
{
server
:
"docker://mydockerhub.org"
},
want
:
"mydockerhub.org"
,
wantErr
:
false
,
},
{
name
:
"TC4 - normal server address with none prefix"
,
args
:
args
{
server
:
"mydockerhub.org"
},
want
:
"mydockerhub.org"
,
wantErr
:
false
,
},
{
name
:
"TC5 - normal server address with other suffix"
,
args
:
args
{
server
:
"mydockerhub.org/test/test1"
},
want
:
"mydockerhub.org"
,
wantErr
:
false
,
},
{
name
:
"TC6 - normal server address with other suffix"
,
args
:
args
{
server
:
"https://mydockerhub.org/test/test1"
},
want
:
"mydockerhub.org"
,
wantErr
:
false
,
},
{
name
:
"TC7 - normal server address with other suffix 2"
,
args
:
args
{
server
:
"mydockerhub.org/test/test1:3030"
},
want
:
"mydockerhub.org"
,
wantErr
:
false
,
},
{
name
:
"TC8 - abnormal server address"
,
args
:
args
{
server
:
"/mydockerhub.org"
},
want
:
""
,
wantErr
:
true
,
},
{
name
:
"TC9 - abnormal server address with wrong prefix 2"
,
args
:
args
{
server
:
"http:///mydockerhub.org"
},
want
:
""
,
wantErr
:
true
,
},
}
for
_
,
tt
:=
range
tests
{
t
.
Run
(
tt
.
name
,
func
(
t
*
testing
.
T
)
{
got
,
err
:=
ParseServer
(
tt
.
args
.
server
)
if
(
err
!=
nil
)
!=
tt
.
wantErr
{
t
.
Errorf
(
"ParseServer() error = %v, wantErr %v"
,
err
,
tt
.
wantErr
)
return
}
if
got
!=
tt
.
want
{
t
.
Errorf
(
"ParseServer() got = %v, want %v"
,
got
,
tt
.
want
)
}
})
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录