Юра
А
Юра
У тебя же рут идет от паблика
Юра
А не от корня проекта
Юра
root /var/www/link-shortener/public;
Юра
в итоге он ищет в root /var/www/link-shortener/public/public/...
Viktor
так это же стандартный симфони нгинкс конфиг, разве нет?
Viktor
в итоге он ищет в root /var/www/link-shortener/public/public/...
так все же правильно. именно в ней лежат все assets
Юра
асеты лежат в {project_root}/public
Юра
по какому урлу у тебя 404?
Viktor
асеты лежат в {project_root}/public
чего-то туплю, сорри( root /var/www/link-shortener/public; - так в нгинкс ассеты у меня лежат /var/www/link-shortener/public/bundles/… при этом http://link-shortener.hello.com/bundles/nelmioapidoc/logo.png возвращает 404, но сама симфони нормально работает, контроллеры отрабатывают
Юра
ну зайди в образ нгинкса
Юра
и посмотри эрор лог
Юра
он там пишет по какому пути н не может найти файлы
Юра
или напиши docker logs ...
Юра
может там будет ерор лог
Юра
у тебя точно внутри нгинкса есть папка /var/www/link-shortener/ ?
Юра
просто у тебя два контейнера и проджект рут в них может быть разный
Юра
надо убедиться что все лежит там где надо
Viktor
кстати, реально...
Viktor
в нгинксе в паблике нет assetов
Viktor
а в php-fpm есть
Viktor
а как можно их засинкать между собой?
Юра
Они у тебя случаем не симлинком ссделаны?
Viktor
Они у тебя случаем не симлинком ссделаны?
только что смог нагуглить то, что о чем вы говорите))) https://stackoverflow.com/questions/44284484/docker-compose-share-named-volume-between-multiple-containers/44284993#44284993 сделал volume не привязанный ни к чему, и объединил два контейнера им
Viktor
спасибо большое!
Viktor
есть еще вопросик) а как в проде лучше шарить эти самые статичные файлы между релизами? сделать volume с приваязкой к конкретной папке на сервере? тоже самое про бд вопрос. у меня пг. сделать на сервере папку и связать с помощью volume с контейнером?
Юра
Тут много нюансов
Юра
Как вы делаете деплой и т.д.
Юра
У меня просто через named volume
Юра
В нгинкс мапится прям весь проект но рут смотрит в паблик папку
Viktor
Сначала сделать сборку php-cli как здесь и потом скопировать из него папку public/bundles в nginx как здесь.
А при загрузке файлов пользователями, они будут попадать в /uploads папку контейнера php-fpm. Но они же также не будут попадать в эту же папку контейнера Nginx?
Aleksandr
привет товарищи, кто-то в реальной жизни щас NFT использовал?
Юра
Понял! Спасибо!
У тебя могут быть маунты внутри маунтов
Viktor
У тебя могут быть маунты внутри маунтов
))) стало чуть менее понятнее))))
Aleksandr
Aleksandr
и ты прав)
Юра
У тебя могут быть маунты внутри маунтов
Ну например папка uploads может быть отдельным вольюмом который маунтится в поверх другого вольюма
Юра
Но это так, просто к слову
Viktor
Но это так, просто к слову
Окей, поиграюсь) Спасибо ещё раз
Юра
в придачу эта папка наверное еще и может быть какой-нибудь файловой системой которая умеет реплицироваться на несколько серверов. И ты можешь впридачу получить репликацию на несколько разных серверах одной и той же папки
Юра
Ну это ж линукс
Юра
Так и есть
Alex
Привет, кто нибудь закрывал nelmio_api_doc апи запросы через components: securitySchemes: Bearer: type: http scheme: bearer bearerFormat: JWT security: - Bearer: [ ] не подскажите как реализовать проверку Bearer и его выпуск? в какую сторону смотреть?
Юра
Закрой черкз нгинкс да и все
Юра
Или ты о каком закрытии?
Alex
Я имею ввиду запрос по апи с авторизацией
Юра
Обычный Authorization: Bearer JWTTOKEN
Alex
в доке написано об securitySchemes и о @Security(name="Bearer") для методов а вот выпуск токена и его проверка на уровне firewalls должна происходить?
Юра
Посмотри lexik jwt bundle
Юра
https://github.com/lexik/LexikJWTAuthenticationBundle
Alex
Спасибо буду разбираться
Юра
Там изи всё
A
Привет всем! Господа, а подскажите, кто как делает composee install в образах для продакшна? Интересует как кто с рецептами борется. Что-то кроме composer.json из проекта подкидываете для установки зависимостей?
A
На днях столкнулся с интересной проблемой. Проект +- в стиле структуры framework bundle. Все время в гитлабе при сборках для прода закидывали в промежуточный образ только composer.json. При установке прогонялись все рецепты симфы, а вот со вчера перестали.
A
composer install --no-dev --no-scripts
Спасибо, к такому и пришли в итоге. А у вас в скринкастах, если не ошибаюсь, в уроке про докер --no-scripts не указано. Спасибо!
A
Да, логично. Все вроде ок, еще раз благодарю.
artem
@here кто-то может помочь с dic? Последний затуп. Нужно сегодня доделать
Aleksandr
метод уточки никто не отменял
artem
метод уточки никто не отменял
Тут показывать нужно
Aleksandr
показывй)
artem
че дальше то? куда контейнер пихать?
artem
Dmitry
че дальше то? куда контейнер пихать?
Не контейнер в команду пихать, а команду из контейнера доставать: $command = $container->get(UploadCommand::class); $command->execute($path);
Dmitry
сомнительный нейминг команда - это что делать, а не само исполнение
Ну это смотря какие команды иметь в виду. А так да, для операций удобнее разделять на команду и обработчик. Про варианты было в https://elisdn.ru/blog/150/entity-dependencies
Дмитрий
добрый день, симфонисты, столкнулся с такой штукой: есть у меня ентити User, есть ентити Project у которого есть связь #[ORM\ManyToOne(targetEntity: User::class, inversedBy: 'projects')] мейкер всё сам сделал и настроил метод public function setUser(?User $user): self и все бы хорошо но когда я решил сделать ProjectDataPersister (у меня ApiPlatform) притащил через DI Symfony\Component\Security\Core\Security и вызвал его чтобы получить $this->security->getUser() который затем отдать в $data->setUser($this->security->getUser()); и оно даже работает.... но... шторм ругается потому что секурити возвращает UserInterface а setUser ждет ентити class User implements UserInterface как это правильно починить?
Nikolay
Надо делать обёртку над юзером какую то видимо
Дмитрий
Есть один плохой вариант, имплементить интерфейс для сущности, но так не стоит делать
да я тоже сразу об этом подумал. но потом решил что раз maker так не сделал. значит так делать нехорошо
Nikolay
В сущности говно будет
Дмитрий
а интересно можно как-то сделать new User и наполнить ее $this->security->getUser()?