Dicas, Docker, Linux

Comandos Docker: torne sua CLI mais fácil e ágil

Tips & Tricks SeriesApós trabalhar um tempo com Docker na linha de comando você percebe que alguns comandos são muito repetitivos e um tanto chatos. Apesar de o cliente de linha de comando do Docker ser extremamente poderoso, existe uma infinidade de parâmetros e combinações para se lembrar.

Em um ambiente Unix-like (*-Linux, Mac, etc) é possível tornar algumas tarefas repetitivas um pouco mais ágil e divertida. Veja como é possível definir algumas variantes dos comandos Docker mais comuns: docker run, docker psdocker images, docker inspect, docker exec, e assim por diante…

É possível definir novos comandos e expor em seu profile shell utilizando aliases e functions via Linux Shell. Veja alguns que defini em meu ~/.bash_profile (pode ser o ~/.bashrc também!):

NOTA: após editar e salvar o arquivo execute ‘source ~/.bash_profile’ para carregar as novas definições em sua shell.

Nas duas primeiras linhas defini dois alias:

  • di: listar as imagens em meu repositório local; e
  • dps: listar todos os containers criados

Em seguida defino algumas funções que utilizam sub-comandos e combinações de parâmetros um pouco mais elaborados:

  • dock-run <nome ou id da imagem>: cria um container utilizando a imagem informada
  • dock-exec <nome ou id do container>: executa o shel (/bin/sh) do container informado. Equivalente ao docker attach
  • dock-ip <nome ou id do container>: obtém o endereço ip do container
  • dock-rmc: remove todos os containers inativos (com status exited)
  • dock-rmi: remove todas as imagens com id ‘none

Espero que essa dica seja útil pra vocês também!

Compartilhe seus comandos também comentando abaixo 😉

Anúncios
Containers, Dicas, Docker, Geral

Como me mantenho atualizado sobre a onda Containers, Docker e afins…

Olá!realcontainers

Neste post quero compartilhar algumas referências que venho utilizando para, não apenas aprender, mas principalmente me manter atualizado sobre o tópico Containers, Docker, Kubernetes (orquestração) e afins…

Como tudo tem um início, segue alguns links interessantes pra quem está començando no assunto. O site opensource.com é uma excelente fonte pois reúne o que há de mais relevante no mundo Open Source. Abaixo alguns artigos para conhecer Docker:

opensourceblog

 

O Site CenturyLink Labs também disponibiliza artigos exelentes escritos pelos principais especialistas no assunto.centurylink labs

Para quem está interessando em desenvolver aplicações nesse novo paradigma de Cloud e Containers sugiro seguir o Blog do Arun Gupta: http://blog.arungupta.me/

Arun Gupta weblog

Arun é um dos vários evangelistas Red Hat que escreve  sobre JavaEE, Docker, Containers, Microservices e demais soluções Red Hat JBoss Enterprise Middleware

Após conhecer esse novo mundo , sugiro assinar essas duas Newsletter

Alguns perfis que vale a pena seguir no Twitter_logo:

Para uma abordagem Corporativa do uso de Containers veja:

red hat containers

BPMS, Dicas, JBoss, Middleware

JBoss BPM Suite: Project Deployment Override

In this post I want to share a useful tip for those working with Red Hat JBosTips & Tricks Seriess BPM Suite 6.x (based on Drools jBPM 6.2). During development phase is normal to redeploy your project many times to view/test your changes.images_branding_product-logos_bpm-suite-19

As you already know the JBoss BPM Suite offers a rich and powerful Workbench that supports the full BPM life circle (from design to deployment) – Business Central (Kie Workbench).

In the business-central every time you try to do a build your project It also tries to deploy in the jBPM runtime. BPMS-6.2-BuildDeploy

At this time the jBPM Deployment Manager checks for any existing project artifact with the same Maven GAV coordinates (Group Artifact Version). The Maven GAV coordinate uniquely identifies each project artifact deployed and managed by the BPMS. So when you try to redeploy your project without change the project version before, your Build & Deploy will fail.

JBoss BPM Suite Travel Agency Demo
JBoss BPM Suite Travel Agency Demo: https://github.com/jbossdemocentral/bpms-travel-agency-demo

In the server.log you can see the following error entry:

16:46:21,464 ERROR [org.jbpm.console.ng.bd.backend.server.DeploymentManagerEntryPointImpl] (http-/127.0.0.1:8080-8) Deployment of unit org.specialtripsagency:specialtripsagencyproject:2.0.1 failed: unit already deployed! (override deployment: false): org.jbpm.console.ng.bd.exception.DeploymentException: unit already deployed! (override deployment: false)

You can workaround this going to Process Deployments (top Menu > Deploy in the Business Central) and undeploy  the Process artifact.

BPMS-6.3-Undeploy

But doing this every time you want to test a change is very boring and time consuming.

To avoid this you can pass a System Property to the BPMS during the startup to instruct it to accept artifacts redeployment using the same Maven GAV coordinates.

Start you BPMS server instance using the following system property

./standalone.sh -Dorg.kie.override.deploy.enabled=true

Note: This approach is documented in the official Product documentation – Administration Guide (item 2.4).

Now you can redeploy your process’ project without having to change the project version every time you want t test a change. See the server.log snippet below showing the deployment of my project after our change:

17:53:21,654 INFO [org.drools.compiler.kie.builder.impl.KieRepositoryImpl] (http-localhost/127.0.0.1:8080-3) KieModule was added: MemoryKieModule[releaseId=org.specialtripsagency:specialtripsagencyproject:2.0.1]
17:53:21,945 INFO [org.jbpm.kie.services.impl.store.DeploymentSynchronizer] (http-localhost/127.0.0.1:8080-3) Deployment unit org.specialtripsagency:specialtripsagencyproject:2.0.1 removed successfully
17:53:21,947 INFO [org.jbpm.console.ng.bd.backend.server.DeploymentManagerEntryPointImpl] (http-localhost/127.0.0.1:8080-3) Deploying unit org.specialtripsagency:specialtripsagencyproject:2.0.1
17:53:22,392 INFO [org.drools.compiler.kie.builder.impl.KieRepositoryImpl] (http-localhost/127.0.0.1:8080-3) KieModule was added: ZipKieModule[releaseId=org.specialtripsagency:specialtripsagencyproject:2.0.1,file=/home/rsoares/.m2/repository/org/specialtripsagency/specialtripsagencyproject/2.0.1/specialtripsagencyproject-2.0.1.jar]
17:53:22,785 INFO [org.jbpm.kie.services.impl.store.DeploymentSynchronizer] (http-localhost/127.0.0.1:8080-3) Deployment unit org.specialtripsagency:specialtripsagencyproject:2.0.1 stored successfully

I hope this little tip help your JBoss BPM Suite usage during process development.