GitHub 컨테이너 레지스트리

Há algum tempo atrás, o GitHub anunciou que stavam criando os GitHub 패키지.Esta era mais uma ferramenta desta incrível rede para que a vida dos desenvolvedores e desenvolvedoras ficasse ainda mais fácil.
Vocêpode acessar os 소프트웨어 패키지através do seu pró prio perfil, e l á Vocêvai veruma série de opões, desde pacotes do NPM até,mais recente, imagens do Docker!.
Acesse seu perfil para poder ver seus pacotes
이소 메스모!Agora,além do Docker Hub,vocêtambém pode armazenar suas imagens diretamente no GitHub,mas o que isso muda?

GitHub 컨테이너 레지스트리


O GH Container Registryéuma forma de vocêconseguir unir O seu código com a imagem que ele representa,ou seja,deixar a infraestrutura e O código em si no mesmo ambiente.
Isso facilita muito quando vocêprecisa direcionar algum usuário para uma página de downloads,ou então informar que vocêpode também baixar a imagem de um determinado container diretamte do seu próprio perfil!
Inicialmente,essa ferramenta estava em um beta fechado,porém,no dia 1 de setembro,a equipe liberou um beta aberto para todos os usuários testarem o novo modelo de pacotes.

회사 명


Comparando com o Docker Hub,que não cobra para repositórios públicos,mas sim para repositórios privados,o GH Container Registryéa mesma coisa.Quando essa functionalidade for para a sua vers ão pública - 유명한 GA(통용성)-o custo para imagens p úblicas será zero, enquanto imagens privadas ter ãum custo a parte.
Por enquanto、no entanto、durante todo o beta、tanto os pacotes públicos quanto privados serão Underos.Então aproveita para fazer aquele teste e colocar suas imagens lá!
마스, 에스페라 움포코...당신은 신사입니까?

Criando uma imagem 회사


Para criarmos e armazenarmos uma imagem no registro do GitHubésuper simples.Podemos fazer de duas maneiras.

Através do Docker 회사


Podemos logar no GitHub com nosso Docker local e envier a imagem para o registro,da mesma forma que logamos em outros registros privados,como oACR.
Para isso vamos seguir os seguintes comandos:
  • o login em seu terminal de prefer ência:
  • docker login docker.pkg.github.com -u <usuario do github>
    
  • O 알림vaipedir sua senha, égerarum novo 방문 영패nesta página

  • important que o token tenha as permissões de escrita e leitura de packages
    Tenha certeza que as permissões estão corretas
  • este영패geradocomosenhaparalogar
  • 사용
  • Faça um push de qualquer imagem utilizandodocker push docker.pkg.github.com/username/repositório/nome-da-imagem:tag
  • Através de GitHub 행동


    Jáfalamos sobre como podemos automatizar uma série de coisas utilizando GH Actions(e mais artigos vão vir por ai😎), então como podemos utilizar as actions para envier nossas imagens para o CR do GitHub?
    Para este exemplo eu vou usar um repositório que mantenho,chamadoZaqar.Isto porque este projeto jáem sua natureza um microserviço e precisa do Docker para functionar,então podemos utiliza lo de forma mais real.
    Primeramente vou criar um novo access token para que eu possa usar como minha senha na nossa action

    Dentro do nosso repositório,vamos na abasettingse depois na guiasecrets.Lá,vamos criar um novo secret chamadoPACKAGES_PASSWORDe vamos colocar o conteúdo nosso access token dentro dele:

    Deposis,vamos na abaactionsdentro do repositório:

    Clicaremos em new workflow(no meu caso,porque eu játinhaum workflow Existent),quando formos direcionados para a tela onde seremos apresentados comosmais diversos workflows,vamos clicar no link abaixo do título que diz'스스로 작업 흐름을 설정합니다.
    Não vamos trabalhar com 템플릿
    Lávamos ter um pequeno documento padrão com algumas linhas,vamos fazer uma alteraão para que tenhamos a nossa action sendo executada somente em push para a branch master e também em tags que comecem comv,assim podemos terv1.0.0e assim por diante.
    Veja como nosso arquivo base vai ficar
    # This is a basic workflow to help you get started with Actions
    
    name: Publish to GitHub Container Registry
    
    on:
      push:
        branches: [master]
        tags: v*
    
    # A workflow run is made up of one or more jobs that can run sequentially or in parallel
    jobs:
      # This workflow contains a single job called "build"
      build:
        # The type of runner that the job will run on
        runs-on: ubuntu-latest
    
        # Steps represent a sequence of tasks that will be executed as part of the job
        steps:
          # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
          - uses: actions/checkout@v2
    
    Agora, vamos no menu do lado direito e iremos procurar a action da pró pria Docker chamada "Docker 이미지 구축 및 전송"

    Iremos copiar o código clicando no botão de cópia do lado direito:
    코피아도 오코디고 데 우소
    E vamos colar 로고abaixo da nossa action Fronter,dentro desteps,depois vamos apagar algumas das linhas que est ão colocadas como par – metros,porque n ão vamos utilizar todos eles.
    # This is a basic workflow to help you get started with Actions
    
    name: Publish to GitHub Container Registry
    
    on:
      push:
        branches: [master]
        tags: v*
    
    # A workflow run is made up of one or more jobs that can run sequentially or in parallel
    jobs:
      # This workflow contains a single job called "build"
      build:
        # The type of runner that the job will run on
        runs-on: ubuntu-latest
    
        # Steps represent a sequence of tasks that will be executed as part of the job
        steps:
          # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
          - uses: actions/checkout@v2
    
          - name: Build and push image
            uses: docker/[email protected]
            with:
              # Username used to log in to a Docker registry. If not set then no login will occur
              username: khaosdoctor
              # Password or personal access token used to log in to a Docker registry. If not set then no login will occur
              password: ${{ secrets.PACKAGES_PASSWORD }}
              # Server address of Docker registry. If not set then will default to Docker Hub
              registry: docker.pkg.github.com
              # Docker repository to tag the image with
              repository: khaosdoctor/zaqar/zaqar
              # Automatically tags the built image with the git reference as per the readme
              tag_with_ref: true
    
    Vamos passar parte por parte deste arquivo para que possamos entender o que estáacontechendo.Primeiramente,estamos dizendo para o workflow na chavenameque vamos nomear esse passo do nosso processo com um novo nome além do nome da action,istoéapenas para organizaço.
    Depois,estamos dizendo que vamos utilizar a action da Docker como uma base,estamos passando o nome do repositório e o nome da action,bem como sua versão.
    Deposis estamos passando pelos par–metros que queremos setar:
  • usernameéo nome do nosso usuário do github
  • passwordéo nosso secret que acabamos de criar,contendo nosso access token para podermos fazer o login no registry
  • depos temos a chaveregistryqueéonde vamos definir para que registro vamos mandar o nosso container.Neste caso,como estamos usando próprio GitHub,vamos fixar esse valor emdocker.pkg.github.com
  • Na chaverepositoryvamos colocar o nome da nossa imagem,ela deve ser sempre neste formato que comentamos acima,onde temosnomedeusuario/repositorio/imagem:tag
  • E então temos aúltima configuraão,queéa mais interestsante Eéa que mais poupa trabalho para quem estádesenvolvendo.A chavetag_with_reffaz algumas coisas interestsantes,A principal delaséque ela faz o taggeamento automático da imagem para nós,quando estamos enviando um push para A branchmasterdiretamente,nossa imagem vai receber A taglatestquando enviamos para uma tag do git,A tag da imagem vai ser o nome da nossa tag do git.Vocêpode checar mais sobre as peculiaridades e como cada uma das configuraçes functiona napágina da action
  • Deposis de terminarmos,vamos dar um nome ao nosso arquivo e então salválo.A partir daíuma nova build irárodar e vamos ter uma nova imagem no nosso repositório:
    nova imagem no nosso repositório,pronta para ser baixada
    Vocêpode checar a página deste pacote 개인nesta URL

    결론


    Juntando o GitHub com os container registries,temos uma capacidade muito maior de poder unir o nosso código e nossa infraestrutura em umúnico lugar.Essa unificaço faz com que nossa complexidade diminua,pois vamos ter que lidar com menos ambientes,portanto podemos pensar em outras functionalidades que tirem proveito destas facilidades no futuro!
    Espero que tenham gostado artigo,deixe seu comentário,curta e Compatilhe!Nãse esqueça de se inscrever nanewsletterpara mais conteúdo exclusive!
    아테미스!

    좋은 웹페이지 즐겨찾기