Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
d7b91fb5
Commit
d7b91fb5
authored
May 09, 2016
by
Kamil Trzcinski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Simplify Container Registry view implementation
parent
08396be6
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
41 additions
and
25 deletions
+41
-25
app/models/project.rb
app/models/project.rb
+6
-4
app/views/projects/container_registry/index.html.haml
app/views/projects/container_registry/index.html.haml
+21
-20
lib/container_registry/blob.rb
lib/container_registry/blob.rb
+4
-0
lib/container_registry/registry.rb
lib/container_registry/registry.rb
+2
-1
lib/container_registry/repository.rb
lib/container_registry/repository.rb
+4
-0
lib/container_registry/tag.rb
lib/container_registry/tag.rb
+4
-0
No files found.
app/models/project.rb
View file @
d7b91fb5
...
@@ -375,17 +375,19 @@ class Project < ActiveRecord::Base
...
@@ -375,17 +375,19 @@ class Project < ActiveRecord::Base
@repository
||=
Repository
.
new
(
path_with_namespace
,
self
)
@repository
||=
Repository
.
new
(
path_with_namespace
,
self
)
end
end
def
container_registry
def
container_registry
_repository
@container_registry_repository
||=
begin
@container_registry_repository
||=
begin
token
=
Jwt
::
ContainerRegistryAuthenticationService
.
full_access_token
(
path_with_namespace
)
token
=
Jwt
::
ContainerRegistryAuthenticationService
.
full_access_token
(
path_with_namespace
)
registry
=
ContainerRegistry
::
Registry
.
new
(
Gitlab
.
config
.
registry
.
api_url
,
token:
token
)
url
=
Gitlab
.
config
.
registry
.
api_url
host_port
=
Gitlab
.
config
.
registry
.
host_port
registry
=
ContainerRegistry
::
Registry
.
new
(
url
,
token:
token
,
path:
host_port
)
registry
[
path_with_namespace
]
registry
[
path_with_namespace
]
end
end
end
end
def
container_registry_url
def
container_registry_
repository_
url
if
container_registry_enabled?
&&
Gitlab
.
config
.
registry
.
enabled
if
container_registry_enabled?
&&
Gitlab
.
config
.
registry
.
enabled
"
#{
Gitlab
.
config
.
registry
.
host_
with_
port
}
/
#{
path_with_namespace
}
"
"
#{
Gitlab
.
config
.
registry
.
host_port
}
/
#{
path_with_namespace
}
"
end
end
end
end
...
...
app/views/projects/container_registry/index.html.haml
View file @
d7b91fb5
-
page_title
"Container Registry"
-
page_title
"Container Registry"
=
render
"header_title"
=
render
"header_title"
.light.prepend-top-default
%p
A 'container image' is a snapshot of a container.
You can host your 'container images' with GitLab.
%br
To start using container images hosted on GitLab you first need to login:
%pre
%code
docker login
#{
Gitlab
.
config
.
registry
.
host_port
}
%br
Then you are free to create and upload a container images with build and push commands:
%pre
docker build -t
#{
Gitlab
.
config
.
registry
.
host_port
}
/
#{
@project
.
path_with_namespace
}
.
%br
docker push
#{
Gitlab
.
config
.
registry
.
host_port
}
/
#{
@project
.
path_with_namespace
}
%hr
%hr
%ul
.content-list
%ul
.content-list
-
if
@tags
.
blank?
-
if
@tags
.
blank?
%li
%li
.nothing-here-block
No images to show
.nothing-here-block
No images in Container Registry for this project.
.light.prepend-top-default
%p
A 'container image' is a snapshot of a container.
You can host your container images with GitLab.
%br
To start using container images hosted on GitLab you first need to login:
%pre
%code
docker login
#{
Gitlab
.
config
.
registry
.
host_port
}
%br
Then you are free to create and upload a container images with build and push commands:
%pre
docker build -t
#{
escape_once
(
@project
.
container_registry_repository_url
)
}
.
%br
docker push
#{
escape_once
(
@project
.
container_registry_repository_url
)
}
-
else
-
else
.table-holder
.table-holder
%table
.table.builds
%table
.table.builds
%thead
%thead
%tr
%tr
%th
Name
%th
Name
%th
Digest
%th
Image ID
%th
Size
%th
Size
%th
Created
%th
Created
%th
%th
...
@@ -37,8 +38,8 @@
...
@@ -37,8 +38,8 @@
-
@tags
.
each
do
|
tag
|
-
@tags
.
each
do
|
tag
|
%tr
%tr
%td
%td
#{
tag
.
repository
.
name
}
:
#{
tag
.
name
}
=
escape_once
(
tag
.
name
)
=
clipboard_button
(
clipboard_text:
"docker pull
#{
Gitlab
.
config
.
registry
.
host_port
}
/
#{
tag
.
repository
.
name
}
:
#{
tag
.
name
}
"
)
=
clipboard_button
(
clipboard_text:
"docker pull
#{
tag
.
path
}
"
)
%td
%td
-
if
layer
=
tag
.
layers
.
first
-
if
layer
=
tag
.
layers
.
first
%span
.has-tooltip
(
title=
"#{layer.revision}"
)
%span
.has-tooltip
(
title=
"#{layer.revision}"
)
...
...
lib/container_registry/blob.rb
View file @
d7b91fb5
...
@@ -11,6 +11,10 @@ module ContainerRegistry
...
@@ -11,6 +11,10 @@ module ContainerRegistry
digest
.
present?
digest
.
present?
end
end
def
path
"
#{
repository
.
path
}
@
#{
digest
}
"
end
def
digest
def
digest
config
[
'digest'
]
config
[
'digest'
]
end
end
...
...
lib/container_registry/registry.rb
View file @
d7b91fb5
module
ContainerRegistry
module
ContainerRegistry
class
Registry
class
Registry
attr_reader
:uri
,
:client
attr_reader
:uri
,
:client
,
:path
def
initialize
(
uri
,
options
=
{})
def
initialize
(
uri
,
options
=
{})
@path
=
uri
||
options
[
:path
]
@uri
=
URI
.
parse
(
uri
)
@uri
=
URI
.
parse
(
uri
)
@client
=
ContainerRegistry
::
Client
.
new
(
uri
,
options
)
@client
=
ContainerRegistry
::
Client
.
new
(
uri
,
options
)
end
end
...
...
lib/container_registry/repository.rb
View file @
d7b91fb5
...
@@ -10,6 +10,10 @@ module ContainerRegistry
...
@@ -10,6 +10,10 @@ module ContainerRegistry
@client
||=
registry
.
client
@client
||=
registry
.
client
end
end
def
path
[
registry
.
path
,
name
].
compact
.
join
(
'/'
)
end
def
[]
(
tag
)
def
[]
(
tag
)
ContainerRegistry
::
Tag
.
new
(
self
,
tag
)
ContainerRegistry
::
Tag
.
new
(
self
,
tag
)
end
end
...
...
lib/container_registry/tag.rb
View file @
d7b91fb5
...
@@ -15,6 +15,10 @@ module ContainerRegistry
...
@@ -15,6 +15,10 @@ module ContainerRegistry
@manifest
=
client
.
repository_manifest
(
repository
.
name
,
name
)
@manifest
=
client
.
repository_manifest
(
repository
.
name
,
name
)
end
end
def
path
"
#{
repository
.
path
}
:
#{
name
}
"
end
def
[]
(
key
)
def
[]
(
key
)
return
unless
manifest
return
unless
manifest
manifest
[
key
]
manifest
[
key
]
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment