Я работаю в среде эластичного бобового стебля python 2.7.
Я пытаюсь использовать источники введите файл .ebextensions .config, чтобы скопировать архив tgz в каталог в корне моего приложения - /opt/python/current/app/utility
. Я делаю это, потому что файлы в этой папке слишком велики для включения в мой репозиторий github.
Однако похоже, что ключ источников выполняется до того, как будет создана символическая ссылка ondeck на текущий каталог пакета, поэтому я не могу ссылаться /opt/python/ondeck/app
при использовании команды sources, поскольку она создает папку, а затем выдает ошибки beanstalk при попытке создать символическую ссылку ondeck.
Вот копии .ebextensions/utility.config
файлы, которые я пробовал:
sources:
/opt/python/ondeck/app/utility: http://[bucket].s3.amazonaws.com/utility.tgz
Выше успешно копируется в / opt / python / ondec / app / utility, но затем возникают ошибки beanstalk, поскольку он не может создать символическую ссылку из / opt / python / bundle / x -> / opt / python / ondeck.
sources:
utility: http://[bucket].s3.amazonaws.com/utility.tgz
Выше копирует папку в / utility сразу в корень параллельно с / etc.
Я смог сделать это с другим ключом:
container_commands:
001_get_utility_dir:
command: "cd /opt/python/ondeck/app/utility && curl http://[bucket].s3.amazonaws.com/elasticbeanstalk/utility.tgz | tar xz"
Это немного помогло, но в моей среде (php) нет временного ondeck
каталог и current
Каталог, в котором в конечном итоге развертывается мое приложение, воссоздается после выполнения команд.
Поэтому мне нужно было запустить сценарий после развертывания. Поиск показал, что я могу вставить скрипт в /opt/elasticbeanstalk/hooks/appdeploy/post/
и он запустится после развертывания.
Поэтому я загружаю / извлекаю файлы из S3 во временный каталог самым простым способом, используя sources
. Затем я создаю файл, который скопирует мои файлы после развертывания и помещаю его в каталог обработчиков после развертывания.
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