Seguem informações de referência úteis para criar e executar uma imagem docker para um servidor Ubuntu com finalidade de uso no desenvolvimento de software para web.

Primeiro, o básico. Criamos um contêiner a partir de uma imagem. Essa imagem pode ser baixada do Docker Hub.

docker pull ubuntu:bionic

Estou usando a tag bionic para me referir a uma versão específica igual a mesma utilizada no servidor de produção.

Esse comando acima vai baixar a imagem para nossa máquina que já possui o serviço do doker rodando.

Uma vez que a imagem está baixada, vamos criar um contêiner a partir dela e expor as portas que serão utilizadas com o comando abaixo.

docker run --name bionic -p 8089:80 -p 5439:5432 -it -i ubuntu:bionic

Essas portas correspondem aos seguintes serviços respectivamente:

  • apache2 web server
  • postgresql database server

Esse comando (docker run … -it) vai te enviar para uma sessão dentro do contêiner.

É aconselhável executar uma atualização de pacotes antes de qualquer outro comando.

Volumes

Por padrão um contêiner descarta os dados gravados quando terminado. Para persistir os dados usamos os Volumes.

O comando abaixo cria um volume com o nome de bionic-vol.

docker volume create bionic-vol

Para usar esse volume, montamos o mesmo no comando run do contêiner.

docker run \
--name bionic \
-p 8089:80 -p 5439:5432 \
--mount source=bionic-vol,target=/app \
-it -i ubuntu:bionic

Dessa forma, uma pasta /app poderá ser usada para armazenar de forma persistente qualquer arquivo ou estrutura de pastas (ex: local onde o servidor de banco de dados guarda seus arquivos).

Agora vamos aprimorar esse comando para atender a necessidade de um desenvolvedor web com persistência de dados e apontamento da pasta do projeto no host pelo web server do contêiner.

docker run \
--name bionic \
-p 8089:80 -p 5439:5432 \
-v $HOME/Projetos:/var/www/html \
-v $HOME/docker/volumes/postgres:/var/lib/postgresql/data \
-it -i ubuntu:bionic

Comandos

Comandos para utilizar para manutenção do contêiner:

  • docker ps – lista contêineres em execução
  • docker attach bionic – conecta o terminal do container
  • docker volume ls – lista volumes instalados

Documentação oficial em https://docs.docker.com/.

Após baixar o arquivo do Pentaho Data Integration, descompacte o conteúdo em uma pasta da sua escolha.

Minha escolha foi ~/MyApps/PDI91. Nunca utilize a pasta de aplicativos nativa do sistema operacional nesses casos.

Estou usando a versão Big Sur do MacOS e a 9.1 do PDI.

No Finder, navegue até a pasta ~/MyApps.PDI91 e abra o arquivo “Data Integration.app”. Provavelmente o sistema vai reclamar dos direitos de acesso. Abra a Privacidade nas Preferências do Sistema e destrave esse aplicativo.

Tente abrir novamente o .app. Caso nada aconteça, execute o comando abaixo no terminal (lembrando de alterar o caminho de acordo com sua escolha) para remover o aplicativo da quarentena:

sudo xattr -dr com.apple.quarantine ~/MyApps/PDI91/Data\ Integration.app

Feito isso o app deve abrir e você poderá fixar o mesmo no Dock depois de executado.

Boas transformações!

MacBook PRO 2017 com 128GB de armazenamento em 2020. Sem chance de continuar instalando atualizações do S.O. e armazenar aplicativos para desenvolvimento de software nessa capacidade de armazenamento.

A busca por um upgrade para um de 512GB bateu forte no bolso. Mais de 2.000,00 em conversão do dólar de hoje por esse aqui:

Procurando uma alternativa, cheguei nesse pacote composto por um adaptador e uma SSD de 512GB, além das ferramentas necessárias para a substituição:

Onde atentar nesse processo:

  • o kit vem com duas chaves, uma exclusiva para o SSD e outra para os demais parafusos
  • a remoção dos parafusos da tampa deve ser memorizada porque são três tamanhos diferentes nesse modelo
  • a remoção da tampa deve ser feita com o auxílio da ventosa e palheta (veja vídeos no youtube sobre esse procedimento), ela é de alumínio e forçar pode vincar a peça de forma irreparável
  • desligar a bateria é um procedimento delicado que envolve o desligamento de um cabo flat e a desconexão de outra peça (eu prefiro deixar a bateria descarregar por completo do que mexer nessas peças)
  • após instalar o no SSD, entrar na recuperação do sistema e preparar o SSD com o Utilitário de Disco

Se for compra as peças separadas, o SSD tem que ter suporte à NVME, do contrário o MacOS não vai reconhecer.

Boa sorte!

Após uma atualização do Windows Update um notebook passou a não responder o comando de abrir a área de notificação e também o calendário.

A única solução foi registrar novamente o componente usando o comando abaixo dentro do PowerShell em modo administrativo:

Get-AppxPackage | % { Add-AppxPackage -DisableDevelopmentMode -Register “$($_.InstallLocation)\AppxManifest.xml” -verbose }

Instalar o PhpSpreadsheet para trabalhar com arquivos do Microsoft Excel no PHP pode ser uma necessidade básica de um projeto.

Utilize os comandos abaixo para preparar o ambiente:

sudo apt install composer php-fdomdocument php-gd php-mbstring php-zip

sudo systemctl reload apache2

Em seguida, o comando abaixo instala o componente para uso no PHP:

composer require phpoffice/phpspreadsheet

Nem todos aplicativos possuem assistentes de instalação para deixar atalhos no menu iniciar.

Nesses casos temos que botar a mão na massa, ou melhor, no terminal, para deixar esses atalhos com acesso mais imediato do que a execução direta chamando o aplicativo na pasta pelo explorer.

A partir do momento que conseguimos criar atalhos para o aplicativo na nossa área de trabalho usando o comando “Enviar para…” podemos recortar e colar esses atalhos na pasta do Iniciar (sim, o Iniciar é uma pasta no seu disco).

Abra a pasta abaixo copiando e colando seu endereço no Executar (Win + R):

mod_fcgid: read data timeout

Com essa pasta aberta, podemos colar nossos atalhos (não cole o arquivo original do aplicativo, nunca!) ou mesmo criar pastas específicas para organizar esses aplicativos.

Em seguida, devemos reiniciar nossa sessão no Windows ou, se preferir, reiniciar o explorer com os seguintes comando no Terminal (não é necessário abrir como Administrador):

taskkill /f /IM explorer.exe
start explorer.exe
exit

Dessa forma os atalhos/pastas já estarão presentes no menu Iniciar, onde podemos fixá-los no acesso rápido, por exemplo.

Boa sorte!

Para obter a sentença do select no CodeIgniter 3.1, utilize o comando get_compiled_select() com exemplificado abaixo:

$this->db->select('...');
$this->db->from('...');
echo $this->db->get_compiled_select();
die();

Para descobrir a valor do registro TXT (DNS) para instalar o Let’s Encrypt, execute o seguinte comando no prompt:

certbot -d dominio.com.br –manual –preferred-challenges dns certonly

Em seguida, siga as instruções abaixo dessa linha:

Please deploy a DNS TXT record under the name

Caso tenha um notebook sobrando, você pode, com algum esforço, criar uma unidade de backup local para seu servidor NextCloud na nuvem.

Com a versão Server do Ubuntu instalada nesse note, veja algumas dicas abaixo para configurar uma rotina de backup automatizada.

Impedindo o desligamento do notebook ao baixar a tela
  • Edite o arquivo /etc/systemd/logind.conf
  • localiza e altere o parâmetro: HandleLidSwitch=ignore
  • Finalize com o comando: sudo service systemd-logind restart
Acessar dados do backup na rede local Windows

Permitir o acesso aos arquivos do backup na rede local através de uma pasta compartilhada é recomendável.

Um HD externo formatado com NTFS pode ser usado para gravar os dados em pasta compartilhada usada como SambaShare.

  • mapeie essa unidade na fstab para ser carregada automaticamente no boot
  • crie uma pasta na unidade externa
  • crie um symlink da pasta da unidade externa na pasta home do usuário da rede que irá acessar os dados localmente
  • modifique o smb.conf para registrar o compartilhamento
    • allow insecure wide links = yes (na seção global)
    • e na seção do compartilhamento:
      • follow symlinks = yes
      • wide links = yes
Fazendo backup para uma pasta local

Antes de baixar os dados, é necessário tirar o sistema do ar, copiar as pastas do sistema e de dados para uma pasta local e finalmente reativar o sistema. Dessa forma garantimos a atomicidade dos arquivos e separamos o trabalho de transferência do backup.

Colocar o NextCloud em modo de manutenção (na pasta raiz do sistema NextCloud. ex: /var/www/nextcloud):

sudo -u www-data php occ maintenance:mode --on

O WordPress pode ser configurado para atender às necessidade de uma base de conhecimento de forma simples e rápida para nosso Negócio.

Nesse vídeo é abordada a teoria e prática para um exemplo de Knowledgebase.