Consegui fazer isso com uma chave diferente:
container_commands:
001_get_utility_dir:
command: "cd /opt/python/ondeck/app/utility && curl http://[bucket].s3.amazonaws.com/elasticbeanstalk/utility.tgz | tar xz"
Estou trabalhando em um ambiente python 2.7 de pé de feijão elástico.
Estou tentando usar as fontes digite um arquivo .configraves .config para copiar um arquivo tgz para um diretório na raiz da minha aplicação - /opt/python/current/app/utility
. Estou fazendo isso porque os arquivos nesta pasta são grandes demais para serem incluídos no repositório do github.
No entanto, parece que a chave source é executada antes do link simbólico ondeck ser criado para o diretório do pacote atual, portanto não posso referenciar /opt/python/ondeck/app
ao usar o comando sources porque ele cria a pasta e depois erros de beanstalk tentando criar o link simbólico ondeck.
Aqui estão cópias dos arquivos .ebextensions/utility.config
que tentei:
sources:
/opt/python/ondeck/app/utility: http://[bucket].s3.amazonaws.com/utility.tgz
Acima copia com êxito para / opt / python / ondec / app / utility, mas depois erros de beanstalk, porque ele não pode criar o link simbólico de / opt / python / bundle / x - > / opt / python / ondeck.
sources:
utility: http://[bucket].s3.amazonaws.com/utility.tgz
Acima copia a pasta para / utility diretamente da raiz em paralelo com / etc.
Isso ajudou um pouco, mas no meu ambiente (php) não há um diretório ondeck
transitório e o diretório current
onde meu aplicativo é implementado é recriado depois que os comandos são executados.
Portanto, eu precisava executar um script post deploy. A pesquisa revelou que posso colocar um script em /opt/elasticbeanstalk/hooks/appdeploy/post/
e ele será executado após a implantação.
Então eu baixei / extraí meus arquivos do S3 para um diretório temporário da maneira mais simples usando sources
. Em seguida, crio um arquivo que copia meus arquivos após a implantação e os coloco no diretório de gancho post deploy.
sources:
/some/existing/directory: https://s3-us-west-2.amazonaws.com/my-bucket/vendor.zip
files:
"/opt/elasticbeanstalk/hooks/appdeploy/post/99_move_my_files_on_deploy.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
mv /some/existing/directory /var/app/current/where/the/files/belong