
Jack
08.08.2018
09:53:54

Andrey
08.08.2018
09:54:31
кто знает нормальный блин пример docker-compose конфиг для ларки для дева

Jack
08.08.2018
09:54:37

Subb98
08.08.2018
09:54:56

Google

Andrey
08.08.2018
09:55:34

Subb98
08.08.2018
09:55:46
а какой тебе нужен?

Andrey
08.08.2018
09:58:00
а какой тебе нужен?
может скорее я чего-то недопонимаю, но если я монтирую директории в контейнер, как после этого выполнить кучу команд
настроить права нужные для директорий
подход с COPY не подходит, мне нужно типа что бы изменения были и в контейнере
запустить все от нужного юзера

Subb98
08.08.2018
09:58:30
щас скину тебе пример
version: '3'
services:
frontend:
build: docker/frontend
depends_on:
- backend
volumes:
- .:/app
ports:
- "3000:3000"
- "3001:3001"
command: npm run watch
networks:
- frontend
backend:
build: .
depends_on:
- db
- smtp
volumes:
- .:/app
command: ./artisan serve --host=0.0.0.0 --port=8080
networks:
- frontend
- backend
db:
image: mysql:5
env_file: docker/mysql/local.env
networks:
- backend
smtp:
build: docker/smtp
ports:
- "1080:1080"
networks:
- backend
networks:
frontend:
backend:

Andrey
08.08.2018
10:00:40

Subb98
08.08.2018
10:01:15

Andrey
08.08.2018
10:01:57

Subb98
08.08.2018
10:02:26
тебе зачем ещё какие-то права в изолированном контейнере? я хз

Andrey
08.08.2018
10:03:46

Subb98
08.08.2018
10:04:05
не, ну есть мнение, что это хорошая практика. но смысла я лично не вижу в этом

Andrey
08.08.2018
10:05:27
я скорее про то когда юзается phpfpm

Google

Aibek
08.08.2018
10:05:32
ребят, есть два пакета
и вот можно как-то отсортировать сервис-провайдеры? чтобы не по имени шли
а то получается нужные действия выполняются сперва в другом сервис-провайдере, а нужно наоборот.
думаю понятно изложил мысль)

Maksim (Ellrion)
08.08.2018
10:05:38
ты сначало зарегал свой Api класс под именем yandex-geocoding как синглтон, а потом зарегал еще.
правильно там где регаешь как синглтон первым параметром Api::class а уже в алисе первым параметром Api::class а вторым нужный альяс (определись какой)

Subb98
08.08.2018
10:06:06

Сергей
08.08.2018
10:08:10
подскажите ка решить траблу у меня в контейнере все файлы на юзере nginx а при входе на сайт видимо он создает лог от имени рута и на сайте выводится ошибка из за этого, приходится руками менять, как решить?

Subb98
08.08.2018
10:09:32
кто входит на сайт?

Maksim (Ellrion)
08.08.2018
10:10:11

Andrey
08.08.2018
10:11:43

Сергей
08.08.2018
10:11:43

Subb98
08.08.2018
10:12:28
а можешь пример Dockerfile для бекенда показать ?
FROM php:7.1
RUN apt-get update
# Core
RUN apt-get install -y unzip git
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# Debug
RUN apt-get install -y mysql-client
RUN docker-php-ext-install pdo_mysql mysqli
WORKDIR /app

Andrey
08.08.2018
10:13:53

Subb98
08.08.2018
10:14:12
ничего. тем более, что я не эксперт )
"в чем разница если я укажу workdir в docker-compose.yml и Dockerfile"
лучше открой доку, я не помню, в чём именно отличие
вроде, оба значения нужны
Dockerfile собирается один раз, к слову
поэтому в двух местах указывается

Arthur
08.08.2018
10:28:30

Евгений
08.08.2018
10:36:36
Кто как сделал бы историю изменения сущности? Есть условный Item с несколькими полями типа id, title, text. Как бы вы стали хранить историю изменения этих данных?

Илья
08.08.2018
10:37:53
сам ещё не юзал, но вроде как подходит под кейс

Subb98
08.08.2018
10:38:34

Google

Subb98
08.08.2018
10:38:50
ок, я бы попробовал парсить миграции :D

Евгений
08.08.2018
10:39:10
а для чего это надо?
чтобы отследить кто когда и как изменил данные с возможностью откатить до какой то версии, условно. В вордпрессе такое есть например

Subb98
08.08.2018
10:39:11
а как хранить - это да, большой вопрос )

dev
08.08.2018
10:39:24

Subb98
08.08.2018
10:40:09

Евгений
08.08.2018
10:40:22
ну да, у меня тут больше вопрос куда писать изменения. Делать доп таблицу с дублированием полей, так себе идея. Если добавить поля то надо будет перепиливать много всего

Илья
08.08.2018
10:40:41

Subb98
08.08.2018
10:40:59

Илья
08.08.2018
10:41:16

Subb98
08.08.2018
10:41:22
а, пардон тогда

Maksim (Ellrion)
08.08.2018
10:41:25

Евгений
08.08.2018
10:42:09
просто в этой же модели хранить?

Edgar
08.08.2018
10:42:26

Adel
08.08.2018
10:42:39

F01134H
08.08.2018
10:42:40

Edgar
08.08.2018
10:42:49

Евгений
08.08.2018
10:43:04
да ну бля, сам момент то отследить легко, мне именно как хранить изменения лучше всего

Maksim (Ellrion)
08.08.2018
10:43:16

Евгений
08.08.2018
10:43:20
чтобы знать кто изменил, когда изменил, и чтоб можно было восстановить условно ту версию

F01134H
08.08.2018
10:43:22
В базе данных

Google

Илья
08.08.2018
10:43:25
я же кинул уже пакет выше
ты смотрел?

Adel
08.08.2018
10:43:32

Евгений
08.08.2018
10:43:41

F01134H
08.08.2018
10:43:56

Edgar
08.08.2018
10:44:06
ну дак и храни изменения конкретно. поле, старое значение, новое значение

Subb98
08.08.2018
10:44:13

F01134H
08.08.2018
10:44:15
Я чет не пойму в чем проблема

Admin
ERROR: S client not available

Adel
08.08.2018
10:44:39
человеку просто не мешало бы ознакомиться с эвент сорсингом
просто инфы ради

F01134H
08.08.2018
10:44:47

Adel
08.08.2018
10:44:50
тогда у него не возникало бы подобных вопросов

Евгений
08.08.2018
10:44:53
ок, добавляем в модель Item новое поле foo_bar, значит надо добавлять и в доп таблицу это и перепиливать (возможно) ивент

F01134H
08.08.2018
10:45:01

Adel
08.08.2018
10:45:10

F01134H
08.08.2018
10:45:17

Maksim (Ellrion)
08.08.2018
10:45:22
я сам писал как то, nаблица такая была
{
Schema::create('entities_history', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('initiator_user_id')->nullable();
$table->unsignedInteger('masked_user_id')->nullable();
$table->morphs('entity');
$table->string('event');
$table->json('before')->nullable();
$table->json('after')->nullable();
$table->timestamp('executed_at');
});

F01134H
08.08.2018
10:45:29

Евгений
08.08.2018
10:45:35

Google

Евгений
08.08.2018
10:45:42
все, можно расходиться)

Илья
08.08.2018
10:46:59

Edgar
08.08.2018
10:47:42
спс
такой треш. тебе всего 3 поля надо: field_name, old_value, new_value
вот будет у тебя моделька с парой полей text да еще какой нить json в придачу
посмотрю я как ты по ней будешь лог действий выковыривать на 1к+ действий
+ изменения придется каждый раз калькулировать между старой и новой версией

Евгений
08.08.2018
10:48:30
можно хранить n последних
вообще нашел пару пакетов, щас изучаю

Max
08.08.2018
10:50:57

Евгений
08.08.2018
10:51:36
спс
я уже понял в общем то)

Adel
08.08.2018
10:52:30
это все конечно хорошо, но есть такое понятие как транзакция. и иногда в ней меняются несколько сущностей

Andrey
08.08.2018
10:52:31

Adel
08.08.2018
10:52:40
точнее не сущностей в строк в таблице

Subb98
08.08.2018
10:52:48
пусть там хоть трэш будет в контейнере, вообще похер
это dev, а не prod

Adel
08.08.2018
10:53:47
именно поэтому подход с правильными агрегатами и ES сильно круче. но ладно... там надо и опыт какой-никакой иметь и скилл

Subb98
08.08.2018
10:55:43
если сильно страшно, что может что-то случиться в контейнере, то вот:
You can disable plugins and scripts during package installation or updates with the following syntax so only Composer's code, and no third party code, will execute:
composer install --no-plugins --no-scripts ...
composer update --no-plugins --no-scripts ...

Andrey
08.08.2018
10:56:37
это dev, а не prod
а допустим если проект стянут с гита, backend же не запустится так как нету еще vendor, нужно перед этим запустить composer install
нужно комментить строку command.... и потом запускать контейнер и зависимости ставить ,а потом обратно раскомментировать command ?
или как по другому