Docker, Linux

Excluindo uma tag de um repositório Docker em um registro remoto

Quando voce publica uma imagem Docker em algum repositório remoto (privado ou público) não é possível excluir uma tag da imagem utilizando o cliente docker na linha de comando.

docker rmi <id da imagem>

isso removerá apenas do seu registro local.

Para remover do registro público é necessário utilizar a API REST [1] do serviço de registro do docker.

De acordo com a documentação da API Docker Registry [2] o endpoint é o seguinte:

DELETE /v1/repositories/(namespace)/(repository)/tags/(tag*)

Exemplo:

DELETE /v1/repositories/reynholm/help-system-server/tags/latest HTTP/1.1
Host: registry-1.docker.io
Accept: application/json
Content-Type: application/json
Cookie: (Cookie provided by the Registry)

Exemplo que usei no meu caso:

[root@rhel7-server-1 httpd]# curl -X DELETE my-private-docker-registry.com:5000/v1/repositories/rsoares/rhel7/tags/latest
true

Pronto!

Se o retorno for ‘true‘ sua tag foi removida!

Execute novamente a requisição REST para se certificar

curl -X DELETE my-private-docker-registry.com:5000/v1/repositories/rsoares/rhel7/tags/latest
{"error": "Tag not found"}

Observe o retorno:

{"error": "Tag not found"}

[1] https://docs.docker.com/reference/api/registry_api
[2] https://docs.docker.com/reference/api/registry_api/#delete-a-repository-tag

Anúncios
Geral, JBoss

Erro java.lang.NoClassDefFoundError: sun.awt.X11GraphicsEnvironment

Depois de um longo tempo (tipo… quase 2 anos :-)) sem postar nada no blog, resolvi voltar a postar…

Neste post desejo compartilhar um “workaround” que encontrei na NET (depois de uma googlada básica) quando me deparei com um problema esquisito em uma aplicação web “deployada” no JBoss AS. Uma das funcionalidades dessa app faz a geração online de uns relatórios em PDF usando o JasperReports. As vezes a aplicação não consegue gerar o relatório e lança a seguinte exception no log do AS: java.lang.NoClassDefFoundError: sun.awt.X11GraphicsEnvironment. Encontrei algumas explicações na net (refs. [1] e [2]) que dizem, aparentemente, ser uma pala relacionada às bibliotecas gráficas em ambientes Linux/Unix. Segundo o trecho abaixo copiado da ref. [1] as bibliotecas AWT da Sun dependem do sistema de janelas X do Linux.

Sem aprofundar muito na questão de como a JVM abstrai isso do SO… O lance é que em ambientes de produção geralmente o ambiente gráfico do S.O (X11) está ausente. A ref. [1] sugere executar uma versão do X Server sem display (Xvfb), ou seja, o Xvfb executa as operações gráficas em memória. Após rodar o Xvfb deve-se configurar a var. de ambiente $DISPLAY do S.O apontando para esse daemond. Além dessa opção do Xvfb, ele sugere setar a JVM property "-Djava.awt.headless=true" que supostamente resolve o problema. Como a 1º opção é um pouco mais complicada preferi configurar a JVM Property mesmo. Em princípio o problema foi sanado, pelo menos, até o momento.

Caso queira saber masi sobre como usar o Xvfb em ambientes sem o X instalado veja a ref. [3] que mostra um cenário em que foi utilizado um Selenium para realização de testes em um servidor sem ambiente gráfico instalado.

_________
Referências:
[1] http://www.jguru.com/faq/view.jsp?EID=222296
[2] http://www.theserverside.com/discussions/thread.tss?thread_id=16049
[3] http://www.jeveaux.com/blog/2008/xvfb-como-usar-o-selenium-sem-ter-um-x-server/

Dicas

Escolhendo um Wiki engine…

Partindo da necessidade de tornar o conhecimento de nossa equipe de desenvolvimento mais acessível, sugeri a utilização de um Wiki interno para publicação de documentos, procedimentos e experiências internas do nosso time. Porém, diante da diversidade de ferramentas Wiki surge algumas questões:

  • Qual engine usar?
  • Qual atende nossas necessidades internas?
  • Usanos um engine escrito em PHP, Perl, CGI, JAVA ou xxx?
  • Quais features são interessantes para nós?

Daí recorri à um colega que me apresentou um site muito legal: http://www.wikimatrix.org/

Este site fornece uma forma de comparar diversas engines para Wiki detalhando as várias features de cada um. E o melhor! O site fornece um wizard que lhe ajuda a escolher a egine que melhor atende suas necessidades com base em um questionário sobre as features que deseja encontrar na engine. Veja http://www.wikimatrix.org/wizard.php

Achei muito interessante. Espero que seja útil!