- page_title "Container Registry" %section .settings-header %h4 = page_title %p = s_('ContainerRegistry|With the Docker Container Registry integrated into GitLab, every project can have its own space to store its Docker images.') %p.append-bottom-0 = succeed '.' do = s_('ContainerRegistry|Learn more about') = link_to _('Container Registry'), help_page_path('user/project/container_registry'), target: '_blank' .row.registry-placeholder.prepend-bottom-10 .col-lg-12 #js-vue-registry-images{ data: { endpoint: project_container_registry_index_path(@project, format: :json) } } .row.prepend-top-10 .col-lg-12 .card .card-header = s_('ContainerRegistry|How to use the Container Registry') .card-body %p - link_token = link_to(_('personal access token'), help_page_path('user/profile/account/two_factor_authentication', anchor: 'personal-access-tokens'), target: '_blank') - link_2fa = link_to(_('2FA enabled'), help_page_path('user/profile/account/two_factor_authentication'), target: '_blank') = s_('ContainerRegistry|First log in to GitLab’s Container Registry using your GitLab username and password. If you have %{link_2fa} you need to use a %{link_token}:').html_safe % { link_2fa: link_2fa, link_token: link_token } %pre docker login #{Gitlab.config.registry.host_port} %br %p - deploy_token = link_to(_('deploy token'), help_page_path('user/project/deploy_tokens/index', anchor: 'read-container-registry-images'), target: '_blank') = s_('ContainerRegistry|You can also use a %{deploy_token} for read-only access to the registry images.').html_safe % { deploy_token: deploy_token } %br %p = s_('ContainerRegistry|Once you log in, you’re free to create and upload a container image using the common %{build} and %{push} commands').html_safe % { build: "build".html_safe, push: "push".html_safe } %pre :plain docker build -t #{escape_once(@project.container_registry_url)} . docker push #{escape_once(@project.container_registry_url)} %hr %h5.prepend-top-default = s_('ContainerRegistry|Use different image names') %p.light = s_('ContainerRegistry|GitLab supports up to 3 levels of image names. The following examples of images are valid for your project:') %pre :plain #{escape_once(@project.container_registry_url)}:tag #{escape_once(@project.container_registry_url)}/optional-image-name:tag #{escape_once(@project.container_registry_url)}/optional-name/optional-image-name:tag