Dans Elastic Beanstalk, le code est téléchargé dans un compartiment S3, puis monté sur /var/app/current
dans l'instance EC2, de sorte que tous les volumes doivent provenir de cet emplacement.Comment faire pour obtenir Dockerrun.aws.json set dynamique sourcePath basé sur l'environnement?
Alors mon Dockerrun.aws.json
ressemble à ceci:
"volumes": [
{
"host": {
"sourcePath": "/var/app/current/foo" // <<< problem lies here
},
"name": "foo"
}
En raison de cette chose /var/app/current
, faire $ eb local run
échoue parce que le chemin source sur ma machine locale est ~/bar/foo
au lieu de /var/app/current/foo
lorsqu'il est déployé. L'erreur est donnée ci-dessous:
Mounts denied:
The path /var/app/current
is not shared from OS X and is not known to Docker.
You can configure shared paths from Docker -> Preferences... -> File Sharing.
See https://docs.docker.com/docker-for-mac/osxfs/#namespaces for more info.
Étant donné que je veux avoir mes déploiements eb fonctionnent localement et à distance avec le même fichier de configuration, comment dois-je résoudre ce problème?
Stack:
- AWS Elastic Beanstalk multi-conteneurs Docker
- MacOS, Docker pour Mac
Cela placerait le code source de l'application sur mon ordinateur local dans un dossier appelé/var/app/current, où je devrais tout faire pour que je fasse quoi que ce soit. J'ai créé un lien symbolique à la place. Toujours à la recherche d'une réponse plus complète que cette solution de contournement. –