---
title: Learning Google Cloud With Real Projects
emoji: 🏃
colorFrom: indigo
colorTo: blue
sdk: docker
pinned: false
---
#
App para determinar dados Meteorológicos
#### Data Scientist.: Dr. Eddy Giusepe Chirinos Isidro
![alt text](https://miro.medium.com/v2/resize:fit:1400/1*6vkMUWU8wt8OyI-m26KbsQ.png)
# Usando Dockerfile
Temos dois `Dockerfiles`, os quais você deve muda de nome para executar eles, assim:
* Dockerfile_FastAPI $-->$ `Dockerfile`
* Dockerfile_Flask $-->$ `Dockerfile`
Para a Dockerização aplicamos os seguintes comandos:
```
$ docker build -t app_fastapi:1.0 .
$ docker run -d -p 8080:8080 --name app_fastapi_container app_fastapi:1.0 (Em segundo Plano)
ou
$ docker run -p 8080:8080 --name app_fastapi_container app_fastapi:1.0
```
# Usando docker-compose
Nesta parte você deve criar um arquivo `docker-compose.yml` que fará o trabalho de chamar a seu arquivo `Dockerfile`. Agora vamos a instanciar a nossa aplicação usando `docker-compose`, para isso usamos os seguintes comandos:
```
$ docker-compose build
$ docker-compose up -d | $ docker-compose up
$ docker-compose down
```
# Usando Docker e Cloud Run na Google Cloud Platform (GCP)
A seguir vamos a realizar o `Deploy` da nossa Aplicação na `Google Cloud Platform` (GCP.)
* Construímos a nossa Imagem lá no `cloudshel`:
```
$ docker build -t app_fastapi:1.0 .
```
![alt text](./1_Building_a_Python_Weather_App_using_Docker_and_Cloud_Run/print_da_App/image.png)
* Seguidamente adicionamos uma `tag` e passamos o caminho que tem a seguinte estrutura: `nome_da_região/id_projeto/nome_do_repositório/nome_qualquer_para_sua_imagem`. Eu chamarei a minha imagem (o final do caminho) com o mesmo nome que testei localmente (`app_fastapi:1.0`). Na linha de comando ficaria, assim:
```
$ docker tag 11b1ad51c754 us-central1-docker.pkg.dev/first-eddy-deploy-ner/eddy-deploy-weather-1/app_fastapi:1.0
```
Repara que a `tag` é o ID da imagem criada anteriormente.
![alt text](./1_Building_a_Python_Weather_App_using_Docker_and_Cloud_Run/print_da_App/image-1.png)
Não esqueça criar, antes, o seu `repositório` para assim pegar depois o path dele:
![alt text](./1_Building_a_Python_Weather_App_using_Docker_and_Cloud_Run/print_da_App/image-2.png)
![alt text](./1_Building_a_Python_Weather_App_using_Docker_and_Cloud_Run/print_da_App/image-3.png)
* Logo, realizamos o `push` da Imagem para o nosso repositório:
```
$ docker push us-central1-docker.pkg.dev/first-eddy-deploy-ner/eddy-deploy-weather-1/app_fastapi:1.0
```
![alt text](./1_Building_a_Python_Weather_App_using_Docker_and_Cloud_Run/print_da_App/image-4.png)
Você pode verificar que a sua imagem foi enviada a seu `repositório` no `Artifact Registry`:
![alt text](./1_Building_a_Python_Weather_App_using_Docker_and_Cloud_Run/print_da_App/image-5.png)
![alt text](./1_Building_a_Python_Weather_App_using_Docker_and_Cloud_Run/print_da_App/image-6.png)
Entrando no `Artifact Registry`, podemos realizar o `Deploy` da nossa App. Fazemos click e selecionamos `Implementar em Cloud Run`, assim:
![alt text](./1_Building_a_Python_Weather_App_using_Docker_and_Cloud_Run/print_da_App/image-7.png)
Thanks God!