Deployer a oprávnění k temp/cache
- theacastus
- Člen | 81
Zdravím,
na produkci nám běží sentry a dnes se stalo že nám v podstatě zahltila CPU, chvíli jsem hledal co se děje a pak jsem zjistil že to dělá náš web (žádný DDOS), takže jsem šel hledat co to způsobilo
PHP Warning: fopen(/srv/{PROJECT_NAME}/PRODUCTION/current/temp/cache/_Doctrine.Annotations/_cf03459493f73dd4e1cb9fb28ef8c029): failed to open stream: Permission denied in /srv/{PROJECT_NAME}/PRODUCTION/releases/139/vendor/nette/caching/src/Caching/Storages/FileStorage.php:149
Z čehož plyne že tam jsou špatná oprávnění…
read/write tam sice je, ale jako owner je root, což nedává vůbec žádný smysl.
Deployment je automatický díky nástroji deployer/deployer
Deploy se dělá automaticky při commitu v master
branch díky
gitlabu a jeho CI/CD
Náš deploy.php:
<?php declare(strict_types = 1);
namespace Deployer;
require 'recipe/common.php';
// Configuration
set('repository', '{repository}');
set('shared_files', [ 'app/Config/config.local.neon' ]);
set('shared_dirs', [ 'logs', 'data_repo', 'public/uploads' ]);
set('writable_dirs', [ 'temp', 'logs' ]);
set('keep_releases', 5);
set('ssh_type', 'native');
set('ssh_multiplexing', true);
// Servers
host('{host}')
->stage('production')
->user('{user}')
->identityFile(__DIR__ . '/id_rsa')
->set('branch', 'master')
->set('deploy_path', '/srv/{PROJECT_NAME}/PRODUCTION')
->set('http_user', '{HTTP_USER}')
->stage('production')
->addSshOption('UserKnownHostsFile', '/dev/null')
->addSshOption('StrictHostKeyChecking', 'no');
// Tasks
desc('Generate Doctrine proxies');
task('doctrine:proxies', 'php public/index.php orm:generate-proxies');
desc('Compile CSS&JS stuff');
//task('npm:resources', 'yarn install && yarn run prod');
desc('Set VERSION');
task('version', 'git describe --tags > VERSION');
desc('Create Sentry release');
task('sentry', '{POST na sentry o nove verzi}');
desc('Deploy your project');
task('deploy', [
'deploy:prepare',
'deploy:lock',
'deploy:release',
'deploy:update_code',
'deploy:shared',
'deploy:vendors',
'deploy:clear_paths',
'doctrine:proxies',
// 'npm:resources',
'deploy:symlink',
'deploy:unlock',
'version',
'sentry',
'cleanup',
'success',
]);
// [Optional] if deploy fails automatically unlock.
after('deploy:failed', 'deploy:unlock');
Je mit to divné, protože by to mělo všechno běžet pod uživatelem který dělá deploy a zároveň vlastní soubory
Pokud někdo vidí chybu, budu fakt rád, protože mít za večer 2k+ chyb / anotace, to se divím že Sentry nespadla
- theacastus
- Člen | 81
SparkCZ napsal(a):
Nechybí ti tam task
deploy:writable
?
Jop, bylo to tím, díky. Jen teda takový kolotoč kolem toho jsem nečekal, skončil jsem u toho že to běží přes sudo without password…