Docker
baixar o docker no wsl
- Atualizar o Sistema
O primeiro passo é atualizar a lista de pacotes do Ubuntu. Para isso entre com o seguinte comando:
sudo apt update
- Instalar pré-requisitos
Instale pacotes de pré-requisitos para permitir ao APT o uso de pacotes seguros HTTPS.
sudo apt install apt-transport-https ca-certificates curl software-properties-common
- dicionar chave GPG
Vamos adicionar a chave para garantir a validade dos pacotes vindos do repositório do Docker.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- Adicionar o repositório Docker ao Ubuntu
Vamos adicionar o repositório Docker as fontes de pacotes do Ubuntu.
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- Atualizar a lista de pacotes
Atualize novamente a lista dos pacotes.
sudo apt update
- Instalar o Docker
Vamos instalar o Docker no Ubuntu.
sudo apt install docker-ce
- Verificar a instalação
Para garantir que tudo deu certo vamos verificar se o Docker está em execução.
sudo systemctl status docker
docker --version
Por padrão o comando Docker só pode ser executado pelo usuário usando SUDO. Para facilitar o uso, vamos adicionar nosso usuário do sistema ao grupo docker, assim não precisamos usar SUDO e digitar senha as nossa execuções do comando.
sudo usermod -aG docker ${USER}
su - ${USER}
Instalar o docker compose
- Criar um diretório para o Docker Compose
Primeiro vamos criar um diretório dentro da diretório do docker, lembrando que o o diretório do docker é oculto por padrão.
mkdir -p ~/.docker/cli-plugins/
- Baixar o Docker Compose
Baixe a versão mais recente do Compose diretamente do github.
curl -SL https://github.com/docker/compose/releases/download/v2.11.2/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
- Dar permissões de execução
Depois de baixar vamos dar as devidas permissões para que o Docker Compose seja executável.
chmod +x ~/.docker/cli-plugins/docker-compose
- Verificar a instalação
Para ter certeza que tudo deu certo basta entrar com o comando docker compose version.
docker compose version
Criação do Docker com Symfony, React e MySQL
Para facilitar, tenha o Linux em sua máquina ou, em caso de Windows, tenha o WSL instalado.
Comece clonando o repositório:
git clone https://github.com/Pedroxbr16/docker-clinica.git
logo após crie um uma aplicação em react com nome de "frontend":
npx create-react-app frontend
e adicione o Dockerfile dentro dele
Lembre-se de alterar o email e usuário do git no Dockerfile dentro da pasta php
após isso rode o docker compose:
docker-compose up --build
e pronto, você terá seu docker rodando
Acessar a maquina docker:
docker-compose exec php /bin/bash
esse comando te dá acessa a pasta "app", tudo oque você fizer nesse ambiente ficará nessa pasta
Criar o projeto em symfony:
symfony new my_project_directory --version="6.4.*" --webapp
pode alterar "my_project_directory" pelo nome que quiser
A aplicação estará rodando em http://127.0.0.1:8080
Para criar entidades no banco de dados
symfony console make:entity
Para criar migrações
antes de criar as migrações configure o .env e o .env.local corretamente
.env:
# In all environments, the following files are loaded if they exist,
# the latter taking precedence over the former:
#
# * .env contains default values for the environment variables needed by the app
# * .env.local uncommitted file with local overrides
# * .env.$APP_ENV committed environment-specific defaults
# * .env.$APP_ENV.local uncommitted environment-specific overrides
#
# Real environment variables win over .env files.
#
# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES.
# https://symfony.com/doc/current/configuration/secrets.html
#
# Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2).
# https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration
###> symfony/framework-bundle ###
APP_ENV=dev
APP_SECRET=fe2a9652fd8f96255a9d8b5174e9da4c
###< symfony/framework-bundle ###
MESSENGER_TRANSPORT_DSN=doctrine://default
###> doctrine/doctrine-bundle ###
# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
#
# DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db"
# DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=8.0.32&charset=utf8mb4"
# DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=10.11.2-MariaDB&charset=utf8mb4"
DATABASE_URL="mysql://root:secret@database:3306/symfony_docker?serverVersion=8.0"
.env.local:
DATABASE_URL="mysql://root:secret@database:3306/symfony_docker?serverVersion=8.0"
symfony console make:migration
agora rode o migrate para injetar os dados no banco
symfony console make:migrations:migrate
Para entrar na instância do banco de dados pelo terminal
docker-compose exec database /bin/bash
assim você entrará na maquina do banco de dados
agora para acessar o mysql:
mysql -u root -p symfony_docker
ele pedirá a senha do banco
Comandos do mysql
show databases;
pra mostrar os bancos disponiveis
use symfony_docker;
pra entrar no banco
show tables;
pra mostrar as tabelas