Сбой символической ссылки EFS при развертывании

Поэтому я использую AWS Elastic Beanstalk для обслуживания моего PHP-приложения. Я хочу смонтировать EFS, чтобы иметь постоянное хранилище для изображений, загруженных через мое приложение. Я создал папку .ebextensions и создал один файл с именем mount.config с приведенным ниже кодом.

packages:
  yum:
    nfs-utils: []
    jq: []
files:
  "/tmp/mount-efs.sh" :
    mode: "000755"
    content: |
      #!/usr/bin/env bash
      mkdir -p /mnt/efs
      EFS_NAME=$(/opt/elasticbeanstalk/bin/get-config environment | jq -r '.EFS_NAME')
      mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 $EFS_NAME:/ /mnt/efs || true
      mkdir -p /mnt/efs/questions
      chown webapp:webapp /mnt/efs/questions
commands:
  01_mount:
    command: "/tmp/mount-efs.sh"
container_commands:
  01-symlink-uploads:
    command: ln -s /mnt/efs/questions /var/app/ondeck/images/

Все работает нормально до последней строки, где не удается создать символическую ссылку.

Что я пробовал до сих пор:

  • Выполнение команды непосредственно на машине при изменении ondeck -> current. Это прекрасно работает.
  • Удаление экземпляра EC2 и добавление нового. Все еще терпит неудачу

В логах вижу

ln: не удалось создать символическую ссылку '/var/app/current/images/questions': нет такого файла или каталога

Любое предложение, что может быть причиной?




Ответы (1)


Хорошо, я исправил это, заменив ondeck на staging.

И добавьте эту строку в container_commands:

  01-change-permission:
    command: chmod -R 777 /var/app/staging/images
person MrLoo    schedule 18.04.2021