Ambiente PHP com Podman e Toolbox - Segunda tentativa
Fedora Silverblue: Ambiente PHP com Podman - Segunda tentativa
Na primeira tentativa, usei o Podman para subir um contêiner com o LAMP completo, com Apache, MySQL e PHP. Fiquei satisfeito com o resultado, mas não gostei do fato de usar apenas um contêiner para a aplicação e para o banco de dados (apesar de fazer isso a vida inteira antes de tentar usar algum contêiner, instalando tudo no sistema host).
Agora vou fazer uma nova tentativa, tentando manter as coisas mais simples, para que elas possam crescer com a mesma simplicidade. O que pretendo fazer nesta tentativa:
- Instalar o PHP CLI em toolbox, com as extensões necessárias
- Usar o servidor embutido no PHP para servir a aplicação, dispensando Apache/NGINX
- Usar um contêiner no Podman para o servidor de banco de dados MariaDB
- Manter o ambiente simples para que novos servidores possam ser adicionados futuramente
Instalando o PHP na toolbox
Obs.: Se quiser ver sobre a toolbox, veja no meu último post.
toolbox create -c fedora32
toolbox enter -c fedora32
Instalando o PHP e NodeJS
Dentro da toolbox:
sudo dnf install php-cli php-mysqlnd php-mbstring php-mcrypt php-zip php-json composer nodejs nodejs-yarn
Rodando os programas no host
Criando aliases para os comandos:
alias node="toolbox run -c fedora32 node" alias php="toolbox run -c fedora32 php" alias yarn="toolbox run -c fedora32 yarnpkg" alias npm="toolbox run -c fedora32 npm" alias composer="toolbox run -c fedora32 composer"
Rodando os comandos no host:
Testando o servidor web do PHP
Vou usar um código sofisticado para testar o servidor embutido do PHP, rodando a partir do sistema host, ou seja, fora da toolbox fedora32.
<?php phpinfo();
Vou salvar o arquivo em ~/projetos/php/exemplo-toolbox-podman/index.php, e executar o servidor do php:
php -S localhost:8080
Resultado no navegador, em http://localhost:8080
Preparando o MariaDB com Podman
Vou usar o Podman para o MariaDB. Como a toolbox não tem serviços do systemd, prefiro usar um contêiner do dockrehub com o MariaDB.
Baixando MariaDB do dockerhub:
podman pull mariadb
Criando o diretório onde quero salvar os dados do banco de dados:
mkdir ~/.local/share/mysql
Rodando o contêiner mariadb:
podman run -d --privileged --name mariadb -p 3306:3306 -v /home/leandroramos/.local/share/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=senhadanasa mariadb
Atenção: vejam o que fiz para conseguir montar os volumes e salvar arquivos do conteiner no host usando volumes.
Criando bancos de dados no cliente DBeaver
Agora já posso usar meu cliente de bancos de dados para acessar o MariaDB na porta 3306 do localhost e criar meus bancos de dados, vejam nas imagens:
Reparem, na imagem abaixo, que os arquivos do banco de dados estão sendo gravados no meu host:
Conclusão
Considero o ambiente atual mais simples e mais fácil para mim, pois ainda estou aprendendo a lidar com os contêineres. Mas vou evoluindo e mostrando para vocês.
No momento estou em condições de fazer o código PHP e Node e me conectar ao MariaDB tranquilamente. Se eu tiver algum problema com esse ambiente, reportarei para vocês também. Abraços.
Comentários
-
Aconselha colocar os aliases no ~/.bashrc?
0
Salas de discussão
- 722 Todas as salas de discussão
- 5 Eventos
- 403 Fedora
- 7 CoreOS
- 138 Spins
- 11 CINNAMON
- 28 GNOME
- 64 KDE
- 10 LXDE
- 4 LXQT
- 13 MATE
- SOAS
- 3 XFCE
- 13 Server
- 84 Workstation
- 33 SilverBlue
- Atomic
- 3 Labs
- ARM®
- 3 Segurança
- 7 Servidores
- 222 Tutoriais
- 6 Críticas e Sugestões
- 16 Novidades e anuncios
- 5 CentOS
- 18 Games
- 31 Hardware
- 8 Linguagens de programação