Git clone com todos os branchs

gitlogo

Em alguns casos  é necessário realizar o clone de um repositório com todas as branchs que ele tem. Por padrão, quando é realizado um git clone de um repositório remoto para sua maquina local é criado somente o branch master.

Para puxarmos o outros branchs temos que realizar alguns comandos. Primeiramente vamos verificar quais branchs remotos existem, com o seguinte comando:

$ git branch -a
* master
remotes/origin/master
remotes/origin/dev

podemos perceber que temos um branch remoto chamado dev. Agora vamos baixar o branch dev para o repositório local, com o seguinte comando:

$ git checkout -b dev origin/dev

Pronto! Agora temos mais um branch em nosso repositório local.

Ambiente de Desenvolvimento PHP com o Docker Compose

Docker

Docker Compose é uma ferramenta para execução de aplicativos docker multi-containers o que nos ajuda muito a iniciar um ambiente inteiro com um comando somente.

Neste post vamos utilizar o Docker Compose para configurar um ambiente de desenvolvimento básico, com o PHP, Apache e MySQL.Vamos utilizar dois containers Docker, um para o PHP e Apache e outro para o banco de dados MySQL. Vamos utilizar imagens oficias do Docker Hub.

Primeiramente vamos criar o container para o servidor WEB. Para isso dentro de uma pasta vamos criar um arquivo chamado Dockerfile contendo as seguintes linhas:


Nos utilizamos uma imagem do repositório oficial, este vem com o PHP 5.6 e o apache. Além disso utilizamos um comando para executar (RUN) a instalação da extensão mysqli. Por hora vamos instalar somente esta extensão, caso queira instalar mais extensões de uma olhada na documentação da imagem que foi utilizada.

O próximo passo é criar um arquivo chamado docker-compose.yml onde teremos as configurações de nossos dois containers. Vamos inserir as seguintes linhas nele:

O próximo passo agora é criar a pasta www/ e um arquivo com o nome index.php dentro da pasta www/ com o seguinte código:

Agora vamos colocar para rodar com o comando docker-compose up. Com este comando será mostrado em um modo verbose, ou seja, cuspindo todas as informações no terminal. Caso queira rodar em segundo plano bastar utilizar o seguinte comando: docker-compose up -d

Este post é o basico do que se pode fazer com o docker, mais com esse básico já podemos ter nosso ambiente de desenvolvimento rodando rapidamente e totalmente independente de nossa maquina.

Rodando MySQL no Docker

Docker

Para facilitar muito a nossa vida de desenvolvedor temos o Docker com seus containers que até parecem mágicos. Neste post vou mostrar como subir um servidor MySQL rapidamente para testes ou uso em um desenvolvimento de uma aplicação.

O primeiro passo é executar o comando setando alguns parâmetros, como o nome da imagem, variáveis ambientes do MySQL, o apontamento da porta externa e interna e por ultimo o nome da imagem no repositório oficial do Docker.

$ docker run --name byteslivres-mysql-1 -e MYSQL_ROOT_PASSWORD=12345 
-e MYSQL_DATABASE=teste -d -p 13306:3306 mysql:5.7.10

Pronto. Depois deste comando o MySQL estará rodando em sua maquina. Para testar abra seu gerenciador de banco de dados e tente conectar com a seguintes configurações:

Host: localhost
Porta: 13306
Usuário: root
Senha: 12345

Tudo dando certo ira aparecer no seu gerenciador o banco de dados teste vazio. Bem agora para pararmos o servidor basta utilizar o seguinte comando:

$ docker stop  byteslivres-mysql-1

Pronto. Caso queira subir novamente o mesmo banco não é necessário utilizar o primeiro comando mostrado. Basta utilizar este comando:

$ docker start  byteslivres-mysql-1

Fazendo deploy com Deployer

deployer

 

Deployer é um pacote em PHP que tem como características realizar o deploy de aplicações e como principal vantagem a economia de tempo, melhor desempenho e desenvolvimento.

Neste post vamos desde do primeiro passo a instalação ate a execução do deploy em um servidor, tudo em um ambiente linux, no meu caso a distribuição Debian. Primeiramente precisamos baixar o arquivo .phar disponível no site do projeto.

Download do deployer.phar

Depois de realizado o download vamos move-lo e para a pasta /usr/local/bin e conceder permissão de execução com o seguinte comando:

$ mv deployer.phar /usr/local/bin/dep
$ chmod +x /usr/local/bin/dep

Depois deste passo teste o comando dep no terminal e veja se aparece mais ou menos como a tela abaixo.

Comando dep

O próximo passo é a criação do arquivo deploy.php onde setaremos algumas configurações para que possamos executar nosso delpoy da melhor maneira. No nosso casso vamos realizar o acesso via identityFile a um servidor e passar os arquivos de uma branch especifica de um repositório git.

<?php require 'recipe/symfony.php'; 
server('prod', '10.10.10.213')->user('byteslv')
->identityFile('/home/btllv/.ssh/id_rsa.pub', '/home/btllv/.ssh/id_rsa')
->env('deploy_path', '/var/www/html')
->stage('production');
 
set('repository', 'git@github.com:usuario/tests.git');
env('branch', 'master');
 
task('deploy:vendors', function () {
});
 
task('deploy:assetic:dump', function () {
});
 
task('deploy:cache:warmup', function () {
});

Pronto agora podemos executar nosso comando pra realizar o deploy na nossa maquina de production. Para rodar basta utilizar o seguinte comando:

$ dep deploy production

O processo começara, e tudo dando certo aparecerá  uma tela mais ou menos como esta abaixo.

dep

Processo realizado com sucesso!

É possível ir bem alem do que mostrei aqui. Entre no site do projeto e veja sua documentação e veja como o que mais pode se fazer com o Deployer.

http://deployer.org/

 

Otimizando MySQL no CentOS 6

Depois de instalar o MySQL em um servidor centOS o mesmo vem com suas configurações padrões. Nesse post vamos ver como otimizar e melhorar um pouco o nosso banco de dados.

O primeiro passo é abrir o arquivo de configuração com um editor de texto preferido. Por padrão este arquivo vem dentro do diretório /etc com o nome de my.cnf .

# vim /etc/my.cnf

Depois de aberto o arquivo vamos inserir estas linhas, salvar o arquivo e fecha-lo.

set-variable = key_buffer=312M
set-variable = max_allowed_packet=1M
set-variable = table_cache=20000
set-variable = sort_buffer=1M
set-variable = record_buffer=1M
set-variable = myisam_sort_buffer_size=64M
set-variable = thread_cache=8
set-variable = thread_concurrency=8
set-variable = max_connections=10000
set-variable = net_write_timeout=30
set-variable = connect_timeout=2
set-variable = wait_timeout=30

Depois de realizado o processo citado acima execute o comando para reiniciar o MySQL, ou para iniciar.

# service mysqld restart

ou

# service mysqld start

Pronto agora é só parti para o abraço.

Sudo e Debian 8

O Debian 8 não vem com sudo instalado para o uso no terminal de padrão, mais caso queira usar o processo de instalação é muito simples e se resume em três passos.

Primeiro é necessário instalar o sudo utilizando o apt-get:

# apt-get install sudo

Depois de instalado o segundo passo é utilizar o usermod para modificar a conta do seu usuário:

# usermod -a -G sudo seu_usuario_aqui

O terceiro e ultimo passo é reiniciar ou realizar logoff para que possa usufruir deste comando.

Inicializar Ubuntu em modo texto.

Logo Ubuntu
Logo Ubuntu

O Ubuntu inicia em modo de interface gráfica por padrão, mais é possível mudar para modo texto. Para isso precisamos realizar algumas modificações no grub.

Acesse o terminal e digite o seguinte comando:

$ sudo vim /etc/default/grub

Comente a seguinte linha (com # )

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Altere a seguinte linha:

GRUB_CMDLINE_LINUX=""

para

GRUB_CMDLINE_LINUX="text"

em seguida descomente a seguinte linha:

#GRUB_TERMINAL=console

removendo a # (Cerquilha).

Realizado estes procedimentos salve o arquivo e atualize o grub.

$ sudo update-grub

Reinicie o sistema e pronto, estará em modo texto.