“A menor implementação PaaS que você já viu”. Foi essa frase que me chamou a atenção quando eu passava alguns links rotineiros e e-mails “weekly” que recebo. E fiquei mais pasmo que tudo isso é feito só com 100 linhas de #!/bin/bash
Realmente, é a menor implementação que eu já vi. Algumas das informações abaixo foram retiradas do site oficial.
O que você não pode fazer com ele:
- Multi-host. Não rola, mas você pode se interessar pelo Deis;
- Multitenancy. Sim, ele faz isso, mas olhe novamente para o Deis;
- Client app. Devido a certas circunstâncias, executar comandos remotos via SSH é bom.
A instalação é simples, e a Digital Ocean já prove uma imagem pronta para começar a usar. Testei com 4 tipos de aplicações, das mais comuns que lidamos no dia-a-dia como #DevOps que é: NodeJs, Ruby/Rails, Python e PHP, e obtive sucesso de deploy sem maiores problemas com essas aplicações. Utilizando apenas GIT + poucos comandos.
Vamos supor que já tenha seu Dokku rodando sem maiores problemas e já tenha o GIT instalado e configurado no seu computador.
Execute um clone do WordPress em uma pasta do seu computador, no meu caso, em ~/projects/dokku-testes:
git clone git@github.com:WordPress/WordPress.git blog cd blog git remote add deploy dokku@seuhost.com.br:blog #Adiciona um repositorio remoto e define o nome da aplicação como "blog" git push deploy master #envia para o repositório remoto "deploy" a branch master
Após isso, veja o retorno do seu console e acesse seu wordpress, pronto para iniciar a instalação do mesmo: http://blog.seuhost.com.br
-----> Cleaning up ... -----> Building blog ... -----> Adding BUILD_ENV to build environment... -----> PHP app detected ! WARNING: No composer.json found. Using index.php to declare PHP applications is considered legacy functionality and may lead to unexpected behavior. -----> No runtime requirements in composer.json, defaulting to PHP 5.6.1. -----> Installing system packages... - PHP 5.6.1 - Apache 2.4.10 - Nginx 1.6.0 -----> Installing PHP extensions... - zend-opcache (automatic; bundled, using 'ext-zend-opcache.ini') -----> Installing dependencies... Composer version 1.0-dev (825b4b9c63a29c586d005de8dbbcfdfeb86bbf6f) 2015-01-20 16:39:06 Loading composer repositories with package information Installing dependencies Nothing to install or update Generating optimized autoload files -----> Preparing runtime environment... NOTICE: No Procfile, defaulting to 'web: vendor/bin/heroku-php-apache2' -----> Discovering process types Procfile declares types -> web Default process types for PHP -> web -----> Releasing blog ... -----> Deploying blog ... -----> Running pre-flight checks check-deploy: /home/dokku/blog/CHECKS not found. attempting to retrieve it from container ... CHECKS file not found in container. skipping checks. -----> Running post-deploy -----> Creating new /home/dokku/blog/VHOST... -----> Configuring blog.seuhost.com.br... -----> Creating http nginx.conf -----> Running nginx-pre-reload Reloading nginx =====> Application deployed: http://blog.seuhost.com.br To dokku@seuhost.com.br:blog * [new branch] master -> master
Para soluções como cache, banco de dados (relacional e não relacional), Queuing, process managers, nginx e outras coisas mais, consulte os plugins já disponíveis.