Сбой развертывания Symfony 3.4 из-за отказа в доступе к общей папке - PullRequest
0 голосов
/ 08 ноября 2018

Я разработал веб-приложение на основе Symfony3.4. На производстве он разворачивается на сервере Ubuntu 18.04 через deployer (deployer.org). Пока все отлично работает. Веб-приложение развернуто в / opt / app / prod, созданное пользователем, который входит в группу www-data.

Мое веб-приложение позволяет загружать файлы. Чтобы поддержать это, я добавил данные папки, в которой хранятся загруженные файлы.

Чтобы сохранить доступ к файлам после другого выпуска, я добавил папку данных в список общих папок.

Мой deploy.php выглядит следующим образом:

set('bin_dir', 'bin');
// Symfony console bin
set('bin/console', function () {
    return sprintf('{{release_path}}/%s/console', trim(get('bin_dir'), '/'));
});

// Project name
set('application', 'appname');
set('http_user', 'www-data');
set('writable_mode', 'acl');

// Project repository
set('repository', '<MY_GITREPO>');

// [Optional] Allocate tty for git clone. Default value is false.
set('git_tty', true);

// Shared files/dirs between deploys
add('shared_files', []);
add('shared_dirs', ['data']);


// Writable dirs by web server
add('writable_dirs', ['{{release_path}}','data']);


// Hosts
host('prod')
    ->hostname('<MY_HOST>')
    ->user('<MY_USER>')
    ->stage('prod')
    ->set('deploy_path', '/opt/app/prod/<MY_APPNAME>');

Это приводит к следующей структуре папок:

.
├── current -> releases/5
├── releases
│   ├── 2
│   ├── 3
│   ├── 4
│   └── 5
└── shared
    ├── app
    └── data

Так что пока все в порядке - с одним исключением: Deployer хочет установить папку данных, которая не разрешена, поскольку файлы в данных принадлежат www-data: www-data, где развертыватель пытается изменить это как.

The command "export SYMFONY_ENV='prod'; cd /opt/app/prod/<MY_APPNAME>/releases/5 && (setfacl -RL -m u:"www-data":rwX -m u:`whoami`:rwX /opt/app/prod/<MY_APPNAME>/releases/5)" failed.
setfacl: /opt/app/prod/<MY_APPNAME>/releases/5/data/child/679/ba7f9641061879554e5cafbd6a3a557b.jpeg: Operation not permitted 

У меня сложилось впечатление, что я допустил ошибку в моем deployer.php или что-то пропустил. Кто-нибудь знает, что мне нужно сделать, чтобы запустить развертывание?

Спасибо и всего наилучшего

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...