AWS Elastic Beanstalk + Submodules de Git

Estoy usando Elastic Beanstalk de Amazon para implementar mi aplicación a través de Git, y tengo submodules dentro de mi Git. Por supuesto, cuando miro los directorys donde deberían estar los datos para los submodules, no hay nada porque los submodules no se han inicializado.

Aparentemente, Elastic Beanstalk no admite submodules. ¿Es esto correcto? Si es así, ¿cómo puedo convencer a Git para que me deje tener las características de un submodule, pero todavía cargar todo el código del submodule cuando presiono el repository principal?

Elastic Beanstalk admite submodules si solo se asegura de que Git esté instalado en la AMI que usa al personalizar y configurar entornos de AWS Elastic Beanstalk . Puedes hacerlo proporcionando una configuration en tu repository git:

  • Cree un file de configuration con la extensión .config (p. Ej., myapp.config ) y colóquelo en un .ebextensions alto nivel .ebextensions de su git repo

  • En ese file, especifique las dependencies:

packages:

  <name of package manager>: <package name>: <version> 

por ejemplo:

packages:

  yum: git: [] 
  • asegúrese de hacer coincidir el name of package manager con el AMI que está utilizando, por ejemplo, yum para Amazon Linux, apt para Ubuntu.

  • probablemente tendrá que adaptar su script de compilation para inicializar los submodules ya que EB no lo hará por usted

  • cometer, empujar, desplegar e ir

¿Qué contenedor? Java, Ruby, etc.

Hay diferentes herramientas de implementación, no solo está atascado con la command-line eb que está disponible en aws. He estado trabajando en una gem config / rake (que usa eb_deployer ) que voy a sacar en breve que solo usa un file zip, no un git push, para que funcione. También puedes probar ebs-deploy .

Si usa awsebcli instalado a través de pip, esto puede ayudarlo.

Encontramos el código fuente del cliente AWS-EB 3.10.1 en PyPi.

El problema está en cómo se manejan los repositorys git mientras se comprime el código fuente de su proyecto para uploadlo a AWS. Si no usa git para su proyecto de AWS, todo el directory del proyecto (incluidos los demás modules de git en los subdirectorys que pueda tener) se comprime y se envía a AWS. Si usa git, todo el código registrado o en etapas, excepto los submodules, se comprime y se envía a AWS. Los submodules de Git se omiten.

Hemos escrito una solución para este problema cambiando el comportamiento de modo que los submodules también se agreguen al file comprimido. Puedes ver la corrección en github.com/uppercasebrands/awsebcli-3.10.1/compare/eb-deploy-submodule en nuestro repository git que se creó a partir del package PyPi original.

Puede instalar el awsebcli-3.10.1 fijo que ahora admite submodules mediante el uso de pip:

pip install --upgrade git+https://github.com/uppercasebrands/awsebcli-3.10.1.git@eb-deploy-submodule