
Alexander
02.06.2018
19:25:48
На практике оказалось что мускуль, нгинкс, апач конечно могут быть в этой "виртуалке" но это разные контейнеры. И это отстрелило крышу. Мое приложение это один контейнер, веб сервер это другой. Веб сервисов, в теории, может быть 100500, но как они будут там работать, если веб сервер один?
Попутно вопрос. Вот у меня приложение на ларке зашифровано кубом. И это совсем не публичное приложение. От слова вообще. Я его продаю желающим за не 5 копеек. Насколько это дружит с идеологией докера? Если я правильно понял, имадж моего приложения должен быть публичным и он по сути содержит все мое приложение?
Ну т.е. какбы понятно что у меня есть ключи и без ключей приложение не стартует, но по сути я дают доступ для взлома всем желающим, а не тем кто купил его за денежку, тем самым увеличивая вероятность успешного взлома

Антон
02.06.2018
19:30:40

Google

Alexander
02.06.2018
19:31:14
докер это про файлы приложения. Они зашифрованы мной.

Антон
02.06.2018
19:31:16
если ты стартуешь свое приложение без докера, то что то меняется?
докер не расшифровывает их. он это контейнеризация сервисов инфраструктуры
во вторых он позволяет версионировать твою инфраструктуру

Ivan
02.06.2018
19:33:09

Alexander
02.06.2018
19:33:45
ну вот как бы отсюда вопрос. каким боком я могу использовать докер лично в моем случае?
т.е. получается что докер мне нужен для того, чтобы поднять нужные приложения
нужных версий
и свое приложение я пропихиваю в определенный каталог и юзаю его
так?

Ivan
02.06.2018
19:34:18
написать конфиг который поднимет нужные сервисы для приложения
laradoc - посмотри что это такое
тебе нужна его "обрезаная версия" что бы продавать клиентам

Google

Ivan
02.06.2018
19:35:41
т.е. качаеш laradoс - смотришь какие контейнеры не нужны (выпиливаешь их) и все конфигурируешь под свое приложени, в итоге рабочий продукт

Антон
02.06.2018
19:35:47
так?
если ты продаешь что то платное, то продавай вместе с инфраструктурой.
а она будет на твоей стороне

Ivan
02.06.2018
19:36:54

Антон
02.06.2018
19:37:21
выпилить в 90% случаев придется чуть меньше чем полностью. проще свое написать
перед использованием докера на проде стоит сначала подумать нужен ли он. Если кажется что все решается без него, значит не нужен

Denis
02.06.2018
19:41:33
Ок, можно я тупые вопросы по SleepingOwl позадаю?

Alexander
02.06.2018
19:42:41
Я правильно понимаю, что нужно под каждый отдельный процесс конфигурировать свой контейнер?
nginx = контейнер
php + laravel = контейнер
mysql = контейнер
rabbitmq = контейнер
supervisor = контейнер
?

Антон
02.06.2018
19:42:44
вот мой реальный кейс. у меня приложение на сервере которое использует mysql 5.5, а мне надо обновиться на 5.7. Но я не могу остановить приложение. Я поднимаю докер контейнер с 5.7, мигрирую туда данные. Делаю репликацию, и когда данные становятся синхронны переключаю настройки приложения на докер. Практически нулевой простой

Denis
02.06.2018
19:43:59
Если кому не впадлу ответить :)

Alexander
02.06.2018
19:44:08
Как в таком случае поставлять обновления на продакшн?
Сейчас вручную арендую серверы и накатываю необходимый софт, потом через deployer заливаю и поставляю им же обновления

Антон
02.06.2018
19:44:25

Alexander
02.06.2018
19:45:18
но ведь там все в своей виртуализации

Антон
02.06.2018
19:45:20
у нас вообще ансибл все делает. там плейбуки с тасками

Alexander
02.06.2018
19:46:12
деплоер цепляется к серверу по ssh и тянет обновления с гита, накатывает потом необходимые заранее прописанные команды и все работает

Google

Alexander
02.06.2018
19:46:13

Антон
02.06.2018
19:46:52

Alexander
02.06.2018
19:46:57
в случае с докером надо будет научить деплоер цепляться к контейнеру приложения и потом туда тянуть всё это

Alexander
02.06.2018
19:47:43

Антон
02.06.2018
19:49:41

Сергей
02.06.2018
19:54:57
подскажите как оптимизировать запрос такой можно? уж очень сильно олго отрабатывает(
$current_task = Lesson::find($this->id);
$current_lesson = $current_task->section;
$current_level = $current_lesson->level;
$next_task = $current_lesson->lessons()
->where('sort', '>', $current_task->sort)
->first();

Антон
02.06.2018
20:03:16

.
02.06.2018
20:03:47
Максимальное количество одновременных подключений (max_user_connections) - 30 ....... что это означает ? это только 30 людей могут быть в сайте одновременно ,

Сергей
02.06.2018
20:03:51

Антон
02.06.2018
20:05:19
$current_task = Lesson::with('section.level')->where('id', $this->id)->get(); получить сразу

Alexander
02.06.2018
20:06:07

Антон
02.06.2018
20:06:11
или даже first
Да через ssh
ну так поднять в докере ssh и стучаться так же к нему деплоером

Alexander
02.06.2018
20:06:50
херасе какие вещи можно мутить))

Антон
02.06.2018
20:09:03
https://github.com/barryvdh/laravel-debugbar

Сергей
02.06.2018
20:09:21

Антон
02.06.2018
20:10:03

Google

Сергей
02.06.2018
20:10:16

Антон
02.06.2018
20:10:21
ну и попробуй мой вариант, с помощью ленивой загрузки.

Сергей
02.06.2018
20:10:59
гугл
это именно в мускуле или в фреймворке?

Антон
02.06.2018
20:11:08
именно в мускуле

Сергей
02.06.2018
20:11:15

Антон
02.06.2018
20:13:55
$next_task = $current_lesson->lessons()
->where('sort', '>', $current_task->sort)
->first();
уверен что не здесь?

Сергей
02.06.2018
20:14:32
а их 150 в моем тесте

Антон
02.06.2018
20:16:16
замечательно

Сергей
02.06.2018
20:16:41

Антон
02.06.2018
20:16:57
я бы задумался над тем что что то не так если бы общее количество запросов было более 30
а у тебя сколько?

Сергей
02.06.2018
20:18:05
не правильно наверно выразился) у меня выводится 150 сущностей и каждая сущность выполняет этот код для определения id слудующей за ней сущности)
последовательность не по id просто должна быть

Антон
02.06.2018
20:18:59
а 150 сущностей одним запросом выбираешь?

Сергей
02.06.2018
20:19:36
Да

Google

Сергей
02.06.2018
20:19:49

Антон
02.06.2018
20:20:09
т.е. у тебя проблема получения для каждой сущности ее следующей

Сергей
02.06.2018
20:20:40

Антон
02.06.2018
20:24:21
и почему ты так много сразу получаешь записей

Сергей
02.06.2018
20:25:35

Антон
02.06.2018
20:27:10
ну как будто бы да

Alexander
02.06.2018
20:31:43
Попробую вмешаться: а может быть можно подтянуть необходимые сущности через appends? У меня это довольно быстро работает

Сергей
02.06.2018
20:34:59

Антон
02.06.2018
20:35:28
но кажется что это не поможет

dev
02.06.2018
20:36:30
может перепиши кусок кода и все

Сергей
02.06.2018
20:36:34

dev
02.06.2018
20:36:44
выгребай сразу все лесонсы с сексиями и задачами

Антон
02.06.2018
20:40:10
все?
а если у него 10 миллионов записей. ему надо 150 выбрать, и для каждого из 150 связанный по какому то критерию
видимо он расписание состовляет какое то по дням. Я бы вообще тогда вводил новую сущность Day
StudyDay::with('lessons')->where(['code', '=', 'monday'])->get();