Requerimentos
- Ubuntu 20.04
- Python 3.8.10
- Docker 20.10.8
Baixe os arquivos necessários
git clone https://github.com/nerdtux/container_gcp_heroku_nginx
Para executar em ambiente virtual recomenda-se instalar o Pipenv
pip install --user pipx
pipx install pipenv
Para instalar os requerimentos digite
pipenv install
Entre no ambiente virtual
pipenv shell
Declare a variável de ambiente "SERVICE"
export SERVICE="Serviço ABC"
Execute o aplicativo
flask run
Abra o browser de internet e digite http://localhost:5000
Deverá aparecer o valor da variável "SERVICE"
Instale o Heroku CLI para Ubuntu através do comando
sudo snap install --classic heroku
Verifique sua instalação
heroku --version
Entrar com usuário e senha após o comando
heroku login -i
Crie um app Heroku
heroku create
Configure a stack do app para container
heroku stack:set container
Entre no seu portal Heroku e clique no app criado anteriormente
Clique em Settings para conferir se a stack foi alterada corretamente
Clique em Deploy e conecte a conta do GitHub
Na mesma página configure uma pipeline
Na tela que abrir, já teremos o link para acesso ao app
Para finalizar a configuração da pipeline vamos conectar novamente ao GitHub
Link para validar o resultado da aplicação no Heroku https://guarded-sierra-31421.herokuapp.com/
Requisitos:
- Conta Google Cloud
- Gcloud instalado - veja como instalar aqui
gcloud auth login
gcloud projects create nomedoprojeto
gcloud projects list
gcloud config set project PROJECT_ID
gcloud alpha billing accounts list
glcloud alpha billing projects link PROJECT_ID --billing-account 0X0X0X-0X0X0X-0X0X0X
gcloud iam service-accounts create nomedacontadeservicos
gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:nomedacontadeservicos@PROJECT_ID.iam.gserviceaccount.com" --roles="roles/editor"
gcloud builds submit --tag gcr.io/PROJECT_ID/nomedoconteiner
gcloud run deploy --image gcr.io/PROJECT_ID/nomedoconteiner --platform managed
- Se for solicitada a ativação da API, responda y. \
- O nome do serviço será solicitado: pressione Enter para aceitar o padrão. \
- Você deverá selecionar a região quando solicitado. \
- Responda y quando receber solicitação para Allow unauthenticated invocations.
Faça o teste abrindo o link que retornar como resultado.
No meu caso o link é esse.
gcloud compute instances create vm-kyros --image=ubuntu-2004-focal-v20210908 --image-project=ubuntu-os-cloud --machine-type=f1-micro --zone=us-east1-b
IMAGEM 10
gcloud compute project-info add-metadata --metadata enable-oslogin=TRUE
gcloud compute os-login ssh-keys add --key-file=PATH/id_rsa.pub --ttl=<tempo>
gcloud compute os-login describe-profile
ssh usernamer@IP_EXTERNO_VM
sudo apt update && sudo apt upgrade -y
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 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
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
git clone https://github.com/nerdtux/container_gcp_heroku.git
cd container_gcp_heroku
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" \ -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
docker-compose up -d
Digite o ip externo da VM no browser de internet. http://34.73.193.35
docker-compose down