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…