Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

403 Forbidden

Pessoal, fiz todos os passos conforme a aula mas quando tento acessar via browser, tenho o retorno abaixo:

Forbidden You don't have permission to access / on this server. Apache/2.4.10 (Debian) Server at 192.168.99.100 Port 8082

Alguém consegue ajudar?

6 respostas

Olá Rodrigo,

Pelo que pude perceber parece que o acesso está sendo realizado na porta 8082. O Dockerfile do php-apache realiza a exposição somente da porta 8080. Conseguiria por favor verificar essa etapa novamente?

Opa, obrigado pelo retorno.

Eu já fiz essa alteração, mesmo erro.

Eu estou utilizando o toolbox mas ocorreu o mesmo erro no Ubuntu. Vim para o Windows para fazer um teste e verificar se ocorreria também o 403.

yaml

version: "3.0"
services:
  db:
    image: mysql
    environment:
      - MYSQL_DATABASE=loja
      - MYSQL_USER=root
      - MYSQL_ALLOW_EMPTY_PASSWORD=true
    volumes:
      - //c/Users/Biaggio/Desktop/docker/Kubernetes/volumes/mysql:/var/lib/mysql

  web:
    image: app-loja:v1
    ports:
      - 8080:80
    depends_on:
      - db

dockerfile

FROM php:5.6-apache
RUN docker-php-ext-install mysqli
COPY . /var/www/html
EXPOSE 80

Olá Rodrigo,

A imagem do projeto já é disponibilizada para vocês no Dockerhub, não há necessidade de configurar o Dockerfile, nesse exercício teriam os passos completos: https://cursos.alura.com.br/course/kubernetes/task/30063

Abs

Desculpe a ignorancia mas não entendi. Estou seguindo o os videos.

Como vimos no curso de Docker, é necessário realizarmos uma customização da imagem conforme nossa necessidade. Conseguiremos fazê-lo através do arquivo Dockerfile, que construiremos agora.

Com "Ctrl + N", abriremos um novo documento no Atom, em que informaremos inicialmente qual a imagem base a ser usada, e este será o ponto de origem. Uma das formas como se diz "origem" em inglês é "from", queremos que nossa imagem tenha um servidor web da Apache e o PHP seja instalado na versão 5.6. Sendo assim, digitaremos:

FROM php:5.6-apache
Lembremos que esta imagem que estamos customizando se refere à parte web, que precisa se comunicar com o banco de dados por meio de mysqli_connect, que não vem instalado automaticamente.

Faremos isto acrescentando um comando de instalação:

FROM php:5.6-apache
RUN docker-php-ext-install mysqli
Feito isto, indicaremos que os arquivos do projeto do diretório loja irão para var/www/html, do servidor da Apache, que é onde todo o conteúdo web fica inserido.

Não podemos esquecer que a comunicação web utiliza a porta de comunicação 80, ou seja, devemos informar à imagem, que agora contempla nossa parte web, de que é necessário expor esta porta para que possamos acessar estes recursos web:

FROM php:5.6-apache
RUN docker-php-ext-install mysqli
COPY /loja /var/www/html
EXPOSE 80
Salvaremos este novo arquivo em "Projeto", nomeando-o com "Dockerfile". Falta criarmos a imagem customizada a partir dele. No terminal, acessaremos o diretório em que salvamos o arquivo recém criado:

cd Área\ de\ Trabalho/
cd Projeto/
ls
docker build -t "aplicacao-loja:v1" .
Desta forma, teremos a construção da nossa imagem com base no "Dockerfile". Aguardaremos a finalização do processo de criação da imagem aplicacao-loja:v1. Vamos voltar ao arquivo docker-compose.yaml para passarmos esta imagem junto aos arquivos da Alura Sports.

Não preciso rodar o docker build -t "aplicacao-loja:v1"??

solução!

Oi Rodrigo,

Exato, na verdade recomendo assistir os vídeos e só depois fazer as atividades posteriores ao vídeo. A transcrição embaixo do vídeo seriam só um auxílio, ela não contém todos os passos necessários para a aplicação funcionar , as atividades subsequentes ao vídeo (Exercícios de múltiplas escolhas e Mãos à obra) é que de fato tem todos os passos completos para executar o projeto.

Abs

Entendi... Eu executei o docker-compose e a aplicação subiu, não deu erro mas agora não consigo subir o container de banco hahaha, ele não sobe de jeito nenhum.

De qualquer forma vou assistir as aulas, depois vejo isso então.

Obrigado.