Salesforce Integração

Este post apresenta estratégias de integração entre sistemas legados e fornecedores.

Object x Remote Process Invocation

Acompanhando soluções de Salesforce, integrando com sistemas externos, um ponto que me questionam é sobre utilizar o Salesforce como interface de sistemas legados, utilizando integração por APIs.

Remote Process Invocation

O Remote Process Invocation define que os dados não sejam armazenados no Salesforce, sendo integrado através de APIs

Veja mais sobre esse assunto aqui.

Remote Process Invocation - State Tracking Using Lightning
VantagensDesvantagens
Armazenamento em tempo real no Remote System.
Tratamento de Segurança da Informação centralizada no Remote System.
Caso o Remote System esteja offline, o Salesforce também ficará.
Não utilizar Object, toda facilidade de gestão e permissão, que o Salesforce fornece, deve ser implementada no Remote System.

NetBeans no Ubuntu

Este post demonstra a instalação do NetBeans no Ubuntu.

OBS: Tive problemas com o OpenJDK Headless, então sugiro que utilize a instalação normal.

Caso o JDK não esteja instalado

$ sudo apt install openjdk-11-jdk

Baixar ou instalar o NetBeans. Neste exemplo, baixei e descompactei no diretório,

/opt/netbeans-12.3/

Para executar, digite o comando,

$ /hd1/opt/netbeans-12.3/netbeans/bin/netbeans

Informações de Hardware no Ubuntu

Para visualizar informações de hardware do PC e outras informações do sistema no terminal do Ubuntu, você precisa instalar o programa inxi, usando o gerenciador de pacotes, ou abrindo um terminal e executando o seguinte comando:

sudo apt-get install inxi

Em seguida, execute o comando abaixo para obter uma lista de opções de comando:

man inxi

Ou execute o comando abaixo para obter uma saída rápida:

inxi -F

Resultado:

fernando@dell-gamer:~$ inxi -F
System:    Host: dell-gamer Kernel: 5.8.0-50-generic x86_64 bits: 64 Desktop: Gnome 3.36.4 
           Distro: Ubuntu 20.04.2 LTS (Focal Fossa) 
Machine:   Type: Laptop System: Dell product: Inspiron 15 7000 Gaming v: N/A serial: <superuser/root required> 
           Mobo: Dell model: 0P84C9 v: A01 serial: <superuser/root required> UEFI [Legacy]: Dell v: 1.12.1 date: 06/19/2020 
Battery:   ID-1: BAT0 charge: 59.8 Wh condition: 59.8/74.0 Wh (81%) 
CPU:       Topology: Quad Core model: Intel Core i7-7700HQ bits: 64 type: MT MCP L2 cache: 6144 KiB 
           Speed: 3400 MHz min/max: 800/3800 MHz Core speeds (MHz): 1: 3271 2: 2833 3: 2975 4: 3277 5: 2449 6: 3286 7: 2368 
           8: 3368 
Graphics:  Device-1: Intel HD Graphics 630 driver: i915 v: kernel 
           Device-2: NVIDIA GP107M [GeForce GTX 1050 Ti Mobile] driver: nouveau v: kernel 
           Display: x11 server: X.Org 1.20.9 driver: nouveau resolution: 1920x1080~60Hz 
           OpenGL: renderer: Mesa Intel HD Graphics 630 (KBL GT2) v: 4.6 Mesa 20.2.6 
Audio:     Device-1: Intel CM238 HD Audio driver: snd_hda_intel 
           Device-2: NVIDIA GP107GL High Definition Audio driver: snd_hda_intel 
           Sound Server: ALSA v: k5.8.0-50-generic 
Network:   Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet driver: r8169 
           IF: enp2s0 state: down mac: 8c:ec:4b:0f:53:ba 
           Device-2: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter driver: ath10k_pci 
           IF: wlp3s0 state: up mac: 2c:6f:c9:65:eb:53 
           Device-3: Qualcomm Atheros type: USB driver: btusb 
Drives:    Local Storage: total: 1.03 TiB used: 143.80 GiB (13.7%) 
           ID-1: /dev/sda vendor: LITE-ON model: CV3-8D128-11 SATA 128GB size: 119.24 GiB 
           ID-2: /dev/sdb vendor: Western Digital model: WD10SPZX-75Z10T0 size: 931.51 GiB 
Partition: ID-1: / size: 116.38 GiB used: 11.57 GiB (9.9%) fs: ext4 dev: /dev/sda5 
Sensors:   System Temperatures: cpu: 70.0 C mobo: 41.0 C sodimm: 42.0 C gpu: nouveau temp: 46 C 
           Fan Speeds (RPM): cpu: 4087 
Info:      Processes: 332 Uptime: 2h 16m Memory: 15.30 GiB used: 6.08 GiB (39.7%) Shell: bash inxi: 3.0.38 

3 passos para se tornar um ninja da produtividade

Sem mais desculpas para não botar pra fazer! Confira essas dicas valiosíssimas de produtividade.

Você sente que nunca tem horas suficientes no seu dia para fazer tudo o que você precisa? A boa notícia é que você não é o único com questões de produtividade. Não sei você, mas eu tenho um monte de pepinos para resolver. Eu costumava ter e-mails brotando igual mato na minha caixa de entrada, uma lista de tarefas quilométrica e aquelas ideias de negócios, uma delas que eu estive pensando em começar por fora há quatro anos, implorando pela minha atenção…

Ok, esse último eu ainda não consegui resolver, mas pelo menos eu melhorei na parte de controlar o monstro de duas cabeças dos e-mails e do gerenciamento de tarefas. E é assim que você também pode se tornar um ninja da produtividade:

Passo 1: mude a sua mentalidade

Esqueça a gestão do tempo e pense sobre o fluxo de trabalho (workflow) e gerenciamento de energia.

Temos 100 mil bilhões de neurônios, mas só podemos manter sete coisas na nossa cabeça ao mesmo tempo. Isso significa que você precisa tirar coisas da sua cabeça e colocá-las em um sistema. No Unreasonable Institute usamos o Asana, mas eu também adoro o Smartsheet para a gestão de projetos; também já usamos o Trello e até mesmo o velho e bom sistema de papel e caneta (apesar de eu achar que os perco mais facilmente).

Escolha um sistema e fique com ele.

Passo 2: lembre-se de que checar o e-mail não é o seu trabalho

Pode ser tentador dar uma olhada no seu e-mail à procura de coisas mais fáceis ou interessantes para fazer, mas isso só suga o tempo que você deveria estar dedicando a outras prioridades. Além disso, geralmente isso produz muito pouco em termos de resultados concretos. Então trabalhe na implantação das seguintes estratégias de gestão de e-mail:

Desligue as notificações

Aquelas coisas que aparecem no canto da tela são mais viciantes que crack e tão distrativas quanto, para terminar de fazer as coisas.

Verifique se o seu e-mail 3 vezes ao dia

Limite o número de vezes que você checa a sua caixa de entrada, assim você vai ser mais eficiente na hora de responder aos e-mails. Eu verifico o meu às 9h, às 12h e às 16h todos os dias.

Aqui está um desafio: tente reduzir isso a apenas uma vez por dia (isso ainda é ninja demais para mim, mas é aonde quero chegar!). E, a propósito, verificar seu e-mail constantemente é TOC (transtorno obsessivo compulsivo)!

Reduza sua caixa de entrada a zero todos os dias

Email Game da Baydin é uma maneira divertida e rápida de fazer isso. Passe entre 15 e 30 minutos usando esse programa para garimpar os seus e-mails.

Avise as pessoas sobre os seus hábitos de e-mail

Por exemplo, adicione uma observação à sua assinatura dizendo: “Eu leio e-mails uma vez por dia. Se for urgente, me ligue!”

Só mande e-mails para quem realmente precisa vê-los

Isso significa reduzir o número de Cópias e Cópias Ocultas que você manda, afinal, da mesma forma, você não quer desperdiçar o tempo dos outros.

Use abreviaturas

Se você conseguir colocar toda a sua mensagem na linha de assunto, faça isso! E coloque EOM depois, o que significa end of message ou “fim da mensagem”.

Se o e-mail só traz informações de que os destinatários precisam saber, coloque PSC no final do seu e-mail, geralmente no corpo. Isso significa “para seu conhecimento” e indica que a pessoa não precisa responder.

Leia newsletters uma vez por semana.

Crie uma pasta separada contendo todas as newsletters que você assina e não a abra até que você tenha tempo para se sentar e ler tudo.

Não use sua caixa de entrada como uma lista de afazeres

Quando você recebe um e-mail, tem as seguintes opções:

– Excluí-lo;

– Delegá-lo, ou seja, encaminhá-lo para outra pessoa para que ela lide com ele;

– Respondê-lo — se achar que isso levará menos de 2 minutos, faça-o imediatamente;

– Adiá-lo, isto é, colocá-lo na sua agenda para resolver mais tarde ou usar o ferramentas como o Boomerang para que o e-mail volte para a sua caixa de entrada mais tarde;

– Ou colocá-lo no seu sistema de gerenciamento de tarefas.

Passo 3: use estes truques

Use estes truques para resolver tudo de forma mais fácil:

Engula o sapo!

Isso significa fazer a coisa mais difícil primeiro. E também significa combinar o seu nível de energia com a demanda do trabalho. Eu sempre agendo minhas tarefas mais difíceis para os primeiros horários da manhã, pois é quando tenho energia suficiente para enfrentá-las, deixando as tarefas mais fáceis para a tarde.

Cronometre suas tarefa

Se a tarefa é difícil, você tem duas opções:

1. Ligue o cronômetro e trabalhe nela por um período específico de tempo;

2. Identifique uma tarefa e trabalhe nela por 10 minutos e faça uma pausa de 2 minutos; em seguida, fique em uma outra tarefa por 10 minutos e fala outra pausa de 2 minutos — faça isso por cinco vezes e você terá começado cinco grandes projetos. Ou você pode fazer isso com um único projeto.

Reduza seu tempo cinza

Seu tempo pode ser definido como branco, preto ou cinza. O branco se refere ao tempo passado com amigos e família, quando você está fazendo as atividades que não são relacionadas ao trabalho. O preto refere-se ao tempo passado trabalhando e resolvendo suas tarefas. E, por último, o cinza se refere ao tempo gasto entre os dois, o que deve ser evitado — trabalhar no seu laptop enquanto assiste à TV definitivamente é tempo cinza.

Sendo assim, escolha: você deve ou trabalhar ou assistir a TV — fazer os dois não é nem relaxante nem produtivo. Separe de forma clara o seu tempo e espaço entre vida profissional e a vida doméstica.

Configure os sistemas de comunicação

Isso é especialmente importante em um escritório aberto, porque é fácil ser interrompido ou interromper os outros. Para evitar que isso aconteça, definia limites sobre quando você está disponível e quando não está. Coloque os fones de ouvido ou invente uma maneira divertida de dizer “não perturbe” (por exemplo, usando um chapéu vermelho).

Trabalhe em etapas

Faça todos os seus calls, por exemplo, em conjunto, mesmo que estejam divididos entre projetos diferentes.

Agende uma “reunião para uma pessoa”

Reserve uma sala de reuniões para utilizar sozinho ou vá a um café e concentre-se no que você precisa fazer. Esse é seu tempo reservado para focar.

Organize as suas listas de tarefas pelo contexto delas

Por exemplo, suas listas podem ser divididas em: 1) Lista de calls; 2) lista de afazeres de casa; 3) lista de afazeres do trabalho; e 4) lista de e-mails para enviar.

Ligue o modo chefe

É tentador se sentir constantemente pressionado a “fazer”, mas, sendo da liderança, às vezes você precisa parar de fazer para pensar.

Tire um tempo (eu faço isso no final do dia ou durante a manhã) para olhar para o dia ou a semana anterior, rever projetos e ações e quebrar os grandes projetos em tarefas gerenciáveis ​​(por exemplo: se você está saindo de férias, pesquise online, verifique os preços, reserve e pague).

Saiba que você sempre vai ter mais para fazer do que você consegue

Você sempre terá mais demanda do que tempo, e você sempre vai querer colocar as mãos em tudo. Mas você não consegue fazer isso — ninguém consegue, mesmo que algumas pessoas pareçam poder. Por isso, trabalhe de forma eficiente, descanse bastante e tire um tempo para curtir. Já dizia James Howell: ““Trabalho sem diversão faz de Jack um bobalhão”.

Instalar Python no Linux compilando o código fonte

Para instalar o Python 3.8 no Linux compilando o código fonte, você deve fazer o seguinte:

Passo 1. Abra um terminal;
Passo 2. Instale os pacotes de compilação e bibliotecas de desenvolvimento da sua distribuição usando a central de programa da mesma (procure pelos nomes ou equivalentes listados nos comandos abaixo) . No caso do Ubuntu, Debian e derivado isso pode ser feito com o seguinte comando;

sudo apt-get install build-essential checkinstall
sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev

Passo 3. Acesse a pasta opt;

cd /opt

Passo 4. Baixe o código fonte com o comando abaixo;

sudo wget https://www.python.org/ftp/python/3.8.7/Python-3.8.7.tgz

Passo 5. Use o comando a seguir para descompactar o arquivo baixado;

sudo tar xzf Python-3.8.7.tgz

Passo 6. Agora, acesse a pasta criada durante a descompactação;

cd Python-3.8.7

Passo 7. Use o comando abaixo para preparar os arquivos para a compilação;

sudo ./configure --enable-optimizations

Passo 8. Em seguida, compile o programa com esse comando (O make altinstall é usado para impedir a substituição do arquivo binário python padrão /usr/bin/python);

sudo make altinstall

Passo 9. Verifique a versão instalada do python usando o seguinte comando;

python3.8 -V

Passo 10. Após a instalação bem-sucedida, remova o arquivo baixado para economizar espaço em disco;

As 8 melhores bibliotecas Python para Machine Learning

O que é machine learning?

O machine learning (ML), ou aprendizado de máquina, é o estudo de algoritmos de computador que melhoram automaticamente com a experiência. É visto como parte da inteligência artificial.

É o campo com maior intensidade de algoritmo na ciência da computação. Já se foi o tempo em que as pessoas tinham que codificar todos os algoritmos paramachine learning. Graças ao Python e suas bibliotecas, módulos e estruturas, agora é mais eficaz e fácil.

Algumas das melhores bibliotecas Python para machine learning em 2021

Bem, Python cresceu e se tornou a linguagem preferida para algoritmos de machine learning. Vamos dar uma olhada nas principais bibliotecas Python usadas para isto.

ML / DL envolve muitos cálculos matemáticos e operações, especialmente Matrix. Para tornar mais fácil e menos demorado, são usadas bibliotecas Python para machine learning.

De acordo com o relatório, NumPy, Pandas e Matplotlib são as bibliotecas Python preferidas para machine learning.

Imagem Ilustrativa

Agora, vamos verificar algumas das melhores bibliotecas Python para machine learning em 2021.

1- Numpy

NumPy ou Numerical Python é álgebra linear desenvolvida em Python. Um grande número de desenvolvedores e especialistas prefere isso a outras bibliotecas Python paramachine learning. Porque quase todos os pacotes de machine learning Python, como scipy, Mat-plotlib, Scikit-learn, etc, dependem fortemente dessa biblioteca em uma extensão razoável.

Além disso, ele vem com funções para lidar com operações matemáticas complexas como transformação de Fourier, álgebra linear, número aleatório e recursos que funcionam com matrizes e n-arrays em Python. Além disso, este pacote python executa cálculos científicos. Portanto, é amplamente utilizado no tratamento de ondas sonoras, imagens e outras funções binárias.

Características:
Objeto de matriz N-dimensional de alto desempenho
Interativo
Recipiente multidimensional para dados genéricos
Intuitivo
Informação adicional

2- TensorFlow

TensorFlow é uma biblioteca de machine learning Python de ponta a ponta para realizar cálculos numéricos de ponta. É uma das bibliotecas Python mais recomendadas para aprendizado de máquina. Ele pode lidar com redes neurais profundas para PNL (Processamento de Linguagem Natural), redes neurais recorrentes, reconhecimento de imagem, incorporação de palavras, classificação de dígitos manuscritos e PDE (Equação Diferencial Parcial). O TensorFlow Python garante excelente suporte de arquitetura para permitir implantações de computação fáceis em uma ampla gama de plataformas, incluindo desktops, servidores e dispositivos móveis.

Um dos principais benefícios do TensorFlow é a abstração para projetos de machine learning e IA. Esse recurso permite que os desenvolvedores se concentrem na lógica abrangente do aplicativo em vez de lidar com os detalhes mundanos da implementação de algoritmos. Além disso, com esta biblioteca, os desenvolvedores de Python agora podem aproveitar IA e ML sem esforço para criar aplicativos responsivos exclusivos, que respondem às entradas do usuário, como expressão facial ou de voz.

Características:
Ele é otimizado para velocidade e faz uso de técnicas como o XLA para operações rápidas de álgebra linear.
Construto Responsivo
Flexível
Facilmente treinável
Treinamento de rede neural paralela
Grande Comunidade
Código aberto

3- Pytorch

Você já pensou por que o PyTorch se tornou uma das bibliotecas Python populares para machine learning em tão pouco tempo?

PyTorch é uma biblioteca de machine learning Python pronta para produção com excelentes exemplos, aplicativos e casos de uso suportados por uma forte comunidade. Esta biblioteca absorve forte aceleração da GPU e permite que você a aplique a partir de aplicativos como o NLP. Como ele suporta computação de GPU e CPU, ele fornece otimização de desempenho e treinamento distribuído escalonável em pesquisa e produção.

Redes neurais profundas e computação de tensor com aceleração de GPU são os dois recursos de ponta do PyTorch. Ele inclui um compilador de machine learning chamado Glow, que aumenta o desempenho de estruturas deste processo.

Características:
Front-end híbrido
Treinamento Distribuído
Python First
Bibliotecas e ferramentas

4- Pandas

Em projetos de machine learning, uma quantidade substancial de tempo é gasta na preparação dos dados, bem como na análise de tendências e padrões básicos. É aqui que o Python Pandas atrai a atenção dos especialistas em machine learning. Python Pandas é uma biblioteca de código aberto que vem com uma ampla gama de ferramentas para manipulação e análise de dados. Com a ajuda dessa biblioteca, você pode ler dados de uma ampla variedade de fontes, como bancos de dados SQL, CSV, arquivos JSON e Excel.

Ele permite que você gerencie operações de dados complexas com apenas um ou dois comandos. Além disso, Python Pandas vem com vários métodos embutidos para combinar dados e agrupar e filtrar a funcionalidade de série temporal. No geral, o Pandas não se limita apenas a lidar com tarefas relacionadas a dados; também serve como o melhor ponto de partida para criar ferramentas de dados mais focadas e poderosas.

Características:
Objeto DataFrame rápido e eficiente com indexação padrão e customizada.
Ferramentas para carregar dados em objetos de dados na memória de diferentes formatos de arquivo.
Alinhamento de dados e tratamento integrado de dados ausentes.
Remodelagem e dinamização de conjuntos de dados.

5- Matplotlib

Como o nome sugere, Matplotlib oferece uma interface semelhante ao MATLAB e fornece aos usuários uma excelente experiência de usuário. Ele usa kits de ferramentas GUI padrão como Qt, wxPython, GTK + ou Tkinter para fornecer aos programadores uma API orientada a objetos para incorporar gráficos e plotagens em seus aplicativos.

Matplotlib ajuda a produzir gráficos e figuras 2D de alta qualidade em vários formatos. Os tipos de gráficos e gráficos incluem gráficos de erros, gráficos, histogramas, gráficos de dispersão e gráficos de barras com o mínimo de linhas de código.

Características:
Renderização de texto mais rápida
Mapa de cores qualitativo
Suporte de imagem aprimorado
Melhor escolha de texto de deslocamento

6- Scipy

SciPy é uma das bibliotecas Python populares para machine learning. Tem sido uma biblioteca favorita entre os entusiastas do machine learning, pois contém diferentes módulos para integração, otimização, álgebra linear e estatística. Há uma diferença entre a biblioteca SciPy e a pilha SciPy. O SciPy é um dos pacotes principais que compõem a pilha do SciPy. Além disso, SciPy também é muito útil para a manipulação de imagens.

Características:
Lida facilmente com operações matemáticas.
Oferece rotinas numéricas eficientes, como integração e otimização numérica, usando submódulos.
Suporta processamento de sinal.

7- Keras

Keras é uma das melhores bibliotecas Python para machine learning. Se você for um iniciante em machine learning, sugiro que use Keras. Além disso, fornece uma maneira mais fácil de expressar redes neurais. Além disso, ele também fornece alguns dos utilitários para compilar modelos, processar conjuntos de dados, avaliar resultados, visualizar gráficos e muito mais.

Keras usa internamente Tensorflow ou Theano como backend. Algumas outras estruturas de rede neural populares como CNTK também podem ser usadas. Keras é lento quando comparado a outras bibliotecas porque constrói um gráfico computacional usando a infraestrutura de back-end e depois o usa para realizar operações. Além disso, Keras fornece muitos conjuntos de dados pré-processados ​​e modelos pré-treinados como Inception, SqueezeNet, Mnist, VGG, ResNet, etc.

Características:
Ele funciona perfeitamente na CPU e GPU.
Conjuntos de dados pré-etiquetados
Vários métodos para pré-processamento de dados
Avaliação de modelo
Modularidade

8- Theano

Em essência, Theano é uma conhecida biblioteca de computação científica que permite definir, otimizar e avaliar expressões matemáticas que lidam com matrizes multidimensionais. O fundamento de vários aplicativos de ML e IA é o cálculo repetitivo de uma expressão matemática complicada.

Theano permite que você faça cálculos com muitos dados mais rápido do que executando somente em sua CPU. Além disso, é bem otimizado para GPUs, o que oferece diferenciação simbólica eficaz e inclui recursos de teste de código extensos.

Quando se trata de desempenho superior, Theano é uma ótima biblioteca de machine learning Python, pois inclui a capacidade de lidar com cálculos em grandes redes neurais. Tem como objetivo aumentar o tempo de desenvolvimento e o tempo de execução de aplicativos de ML, principalmente em algoritmos de aprendizado profundo. Apenas uma desvantagem do Theano na frente do TensorFlow é que sua sintaxe é bastante difícil para iniciantes.

Características:
Integração total com NumPy
Uso transparente de uma GPU
Diferenciação simbólica eficiente
Otimizações de velocidade e estabilidade
Geração de código C dinâmico
Teste de unidade extensivo e autoverificação

Conclusão

O ecossistema python é enorme, tanto em termos de contribuição quanto de uso. Discutimos as bibliotecas Python para machine learning usadas em todas as principais áreas do ML, desde o estágio de manipulação de dados ao aprendizado profundo, processamento de linguagem natural e até mesmo visualização.

Web Sequence Diagrams

Web Sequence Diagrams é um site para geração de diagramas de sequência, a partir de anotações.

Site: https://www.websequencediagrams.com/

Veja um exemplo de anotação:

title [POST] seguranca/v1/serpro

SerproEntryPoint->SerproUseCase: processSerpro(core)
alt Fluxo Gateway
SerproUseCase->GatewayTokenWebClient: getToken()
GatewayTokenWebClient->SerproUseCase: String token
SerproUseCase->SerproGatewayWebClient: getBureauResponse()
SerproGatewayWebClient->SerproUseCase: BureauResponse
else Fluxo Direto
SerproUseCase->SerproWebClient: getBureauResponse()
SerproWebClient->SerproUseCase: BureauResponse
end
SerproUseCase->SerproEntryPoint: BureauResponse

Resultado:

Ubuntu – Java, Docker, Maven e Gradle

Este post demonstrará a instalação mais fácil de fazer.

Java

Para testar se o Java está instalado, digite:

$ java -version

Se o retorno do comando for:

Command 'java' not found, but can be installed with:

sudo apt install default-jre              # version 2:1.11-72, or
sudo apt install openjdk-11-jre-headless  # version 11.0.7+10-3ubuntu1
sudo apt install openjdk-13-jre-headless  # version 13.0.3+3-1ubuntu2
sudo apt install openjdk-14-jre-headless  # version 14.0.1+7-1ubuntu1
sudo apt install openjdk-8-jre-headless   # version 8u252-b09-1ubuntu1

Instale o Java, facilmente com:

$ sudo apt install default-jdk

Ou:

$ sudo apt install openjdk-11-jdk-headless

Verificar a instalação:

$ java -version

Maven

Para verificar se está instalado, digite:

$ mvn -version

Se o comando falhar, digite:

$ sudo apt install maven

Gradle

Execute o comando para verificar a instalação:

$ gradle -version

Se o comando falhar, digite:

$ sudo apt install gradle

Docker

Verificar versão do Docker

$ docker --version

Remover versão instalada

$ sudo apt-get remove docker docker-engine docker.io containerd runc

Instalando Docker

$ sudo apt install docker.io

Docker-Compose

Para instalar, digite os comandos:

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Definir permissões para execução:

$ sudo chmod +x /usr/local/bin/docker-compose

Testando a instalação:

$ docker-compose --version

PostgreSQL, PgAdmin e Docker

Neste post, vamos configurar o docker-compose, para disponibilizar o PostgreSQL com PgAdmin, de maneira fácil e rápida.

Premissa: Espera-se que tenha instalado o Docker e Docker-Compose.

docker-compose.yml


version: '3'

services:
  teste-postgres-compose:
    image: postgres
    environment:
      POSTGRES_PASSWORD: "Postgres2021!"
    ports:
      - "15432:5432"
    volumes:
      - /home/fernando/data/postgres:/var/lib/postgresql/data 
    networks:
      - postgres-compose-network
      
  teste-pgadmin-compose:
    image: dpage/pgadmin4
    environment:
      PGADMIN_DEFAULT_EMAIL: "lfchaim@gmail.com"
      PGADMIN_DEFAULT_PASSWORD: "PgAdmin2021!"
    ports:
      - "16543:80"
    depends_on:
      - teste-postgres-compose
    networks:
      - postgres-compose-network

networks: 
  postgres-compose-network:
    driver: bridge

Subindo os conteiners

$ sudo docker-compose up -d

Ao final do processo, deve aparecer o log final

Status: Downloaded newer image for dpage/pgadmin4:latest
Creating postgres_teste-postgres-compose_1 ... done
Creating postgres_teste-pgadmin-compose_1  ... done

Pode-se verificar os conteiners rodando, com o comando

$ sudo docker ps

Deverá aparecer

CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                            NAMES
1fffaaa4887c        dpage/pgadmin4      "/entrypoint.sh"         About a minute ago   Up About a minute   443/tcp, 0.0.0.0:16543->80/tcp   postgres_teste-pgadmin-compose_1
63e1934f7cdb        postgres            "docker-entrypoint.s…"   About a minute ago   Up About a minute   0.0.0.0:15432->5432/tcp          postgres_teste-postgres-compose_1

Agora, vamos acessar o PgAdmin

Abra um navegador e digite: http://localhost:16543

Forneça o usuário e senha informados no docker-compose

Exemplo: lfchaim@gmail.com / PgAdmin2021!

Na tela do PgAdmin, clique em “Add New Server”

Dê um nome: teste-postgres-compose

Repita o nome em Host: teste-postgres-compose

Usuário: postgres

Senha: Postgres2021! (mesma do docker-compose)

Clicar em “Save”

Pronto! Seu ambiente está criado!