Deployer a oprávnění k temp/cache

theacastus
Člen | 81
+
0
-

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

SparkCZ
Člen | 22
+
0
-

Nechybí ti tam task deploy:writable ?

Editoval SparkCZ (4. 4. 2018 15:43)

theacastus
Člen | 81
+
0
-

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…