Não tenho certeza se esse é o melhor lugar para colocar essa questão. Mas por alguns dias estou lutando para encontrar um bom processo de implantação para o Elastic Beanstalk e quero saber a opinião de pessoas com mais experiência com isso.
Primeiro, meu plano era ter uma imagem do Docker genérica e vincular meu volume de código àquele, em seguida, fazer todas as instalações necessárias ao executar o contêiner.
O problema é que demora muito para instalar tudo e o EB anula a implantação com o tempo limite. Eu tentei aumentar o tempo limite, mas não funcionou (não sei por que, não demora muito para executar o contêiner localmente)
Então, minha próxima ideia era ter a imagem com tudo já pré-instalado. mas para isso eu deveria construí-lo antes e empurrar para um registro.
Ok, então decidi usar o ECR não seria um problema para isso.
Eu criei a imagem e enviei para o registro
Em seguida, criei um Dockerrun.aws.json e apontei para o meu repositório.
Depois disso, continuei recebendo o mesmo erro de tempo limite de antes.
Algumas horas depois, percebi que a AWS continuava criando o Dockerfile, mesmo tendo o Dockerrun no diretório.
Eu não entendo por que eles fazem isso, mas para consertar eu tive que mover meu Dockerfile para não ser rastreado pelo git, o que é realmente irritante.
Então, tudo bem, mas é um fluxo de trabalho ruim. Toda vez que eu atualizar algo no meu Dockerfile, eu tenho que executar tudo novamente, empurre para o ECR. E só depois disso eu posso implantar.
E se alguém quiser implantar o código, eu preciso enviar o Dockerfile manualmente, porque não posso colocá-lo no git, caso contrário, o Elastic Beanstalk tenta criá-lo.
Tenho certeza de que há um fluxo de trabalho mais fácil para isso. Alguém poderia apontar uma direção melhor nesse sentido?