Olá Rafael tudo bem ? Obrigado pela resposta mas cara ainda temos problemas.
Em primeiro lugar fiz o passo a passo conforme indicado da seguinte forma:
- Não há necessidade de criar o Dockerfile
- Edite o arquivo docker-compose.yaml da seguinte forma
version: "3.0"
services:
db:
image: mysql
environment:
- MYSQL_DATABASE=loja
- MYSQL_USER=root
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
volumes:
- /home/jorge/Documentos/kubernets/volumes/volume_mysql:/var/lib/mysql
web:
image: rafanercessian/aplicacao-loja:v1
ports:
- 8080:80
depends_on:
- db
- Execute sudo docker-compose up -d
- Execute sudo docker ps
- Execute sudo docker exec -it projeto_db_1 sh
- Execute mysql -u root -p
- Criar as tabelas com os comandos mysql
use loja
create table produtos (id integer auto_increment primary key, nome varchar(255), preco decimal(10,2));
alter table produtos add column usado boolean default false;
alter table produtos add column descricao varchar(255);
create table categorias (id integer auto_increment primary key, nome varchar(255));
insert into categorias (nome) values ("Futebol"), ("Volei"), ("Tenis");
alter table produtos add column categoria_id integer;
update produtos set categoria_id = 1;
Para verificar se haviam dados nas tabelas fiz um select simples em cada uma:
Database changed
mysql> select * from categorias;
+----+---------+
| id | nome |
+----+---------+
| 1 | Futebol |
| 2 | Volei |
| 3 | Tenis |
+----+---------+
3 rows in set (0.00 sec)
mysql> select * from produtos;
Empty set (0.00 sec)
mysql>
Porém ao iniciar a aplicação
- As categorias não são listadas, e ao tentar cadastrar
- Na tela há alguns warnings, não sei se são importantes:
Warning: mysqli_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in /var/www/html/conecta.php on line 4
Warning: mysqli_connect(): (HY000/2054): Server sent charset unknown to the client. Please, report to the developers in /var/www/html/conecta.php on line 4
Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in /var/www/html/banco-categoria.php on line 7
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null given in /var/www/html/banco-categoria.php on line 8
- Ao tentar cadastrar um produto sou redirecionada para a página http://localhost:8080/adiciona-produto.php, o produto não é cadastrado e recebo os seguintes warnings
Warning: mysqli_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in /var/www/html/conecta.php on line 4
Warning: mysqli_connect(): (HY000/2054): Server sent charset unknown to the client. Please, report to the developers in /var/www/html/conecta.php on line 4
Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in /var/www/html/banco-produto.php on line 14
Fiz testes de ping entre os containers e há ping normalmente.
Como sou curioso dei uma olhada na codumentação do php (http://php.net/manual/en/function.mysqli-connect.php) e editei o arquivo conecta.php deixando da seguinte forma
<?php
# $conexao = mysqli_connect("mysql.hostinger.com.br", "u548680052_loja", "lojaloja", "u548680052_loja");
$conexao = mysqli_connect("172.18.0.2", "root", "", "loja");
Antes estava
$conexao = mysqli_connect("db", "root", "", "loja");
Seguem as configuraçẽos dos meus containers:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2bf48b2177a7 rafanercessian/aplicacao-loja:v1 "docker-php-entryp..." 19 minutes ago Up 19 minutes 0.0.0.0:8080->80/tcp kubernets_web_1
b2e983da66c6 mysql "docker-entrypoint..." 20 minutes ago Up 19 minutes 3306/tcp, 33060/tcp kubernets_db_1
Apesar de tudo não obtive sucesso - continua sem listar as categorias e sem poder cadastrar produtos.
Conclusão não consegui sair da primeira aula... o que mais poderia estar errado ?
Grato