
Alexander
26.08.2017
09:42:22
другие варианты работать будут, но это костыли
systemd или нечто подобное внутри контейнеров - это костыли
чатики по докеру @docker_ru @ru_docker
ну, собственно, там скажут то же самое, что я выше

Google

Ilgiz
26.08.2017
09:53:11
Могут ли быть ошибки в такие ситуации в mysql что прежде чем создать одну таблицу надо создать другую потому что этот будет хранит ключ той еще не созданной таблицы или она все ровно создаст без ошибок?
У меня таблицы создаются по моим файлам миграциям и получается так что Первая миграция создает таблицу которая должна хранить ключ второй таблицы которая данный момент еще не создана так как она вторая по очереди не должно ли быть ошибки?

Alexander
26.08.2017
11:07:02
в uuid.py вижу такой код:
def _random_getnode():
"""Get a random node ID, with eighth bit set as suggested by RFC 4122."""
import random
return random.getrandbits(48) | 0x010000000000
объясните, зачем тут | 0x010000000000?

b0g3r
26.08.2017
11:07:45
with eighth bit?

Alexander
26.08.2017
11:09:05
я немного туплю
>>> random.getrandbits(48)
181116327338218
>>> random.getrandbits(48)
86165741186141
>>> random.getrandbits(48)
72964138170026
>>> random.getrandbits(48)
36488325928887
>>> random.getrandbits(48)
157497923781972
>>> random.getrandbits(48)
48376757787910
>>> random.getrandbits(48) | 0x010000000000
72116518703367
>>> random.getrandbits(48) | 0x010000000000
138113591214542
>>> random.getrandbits(48) | 0x010000000000
210493508311810
>>> random.getrandbits(48) | 0x010000000000
280565094714104
>>> random.getrandbits(48) | 0x010000000000
100475523550844
>>>
не очень вижу разницу между этим

b0g3r
26.08.2017
11:09:41
так ты смотри в бинарном виде, увидишь)

Alexander
26.08.2017
11:09:55
а

b0g3r
26.08.2017
11:11:56
в hex*
In [9]: b = random.getrandbits(48)
In [10]: b
Out[10]: 104402224399968
In [11]: hex(b)
Out[11]: '0x5ef4097fc660'
In [12]: b | 0x010000000000
Out[12]: 105501736027744
In [13]: hex(b | 0x010000000000)
Out[13]: '0x5ff4097fc660'

Роман
26.08.2017
11:17:53
Это сейчас было самое сложное объяснение сложения или я что то путаю? ?

Alexander
26.08.2017
11:18:20
я с математической точки зрения туплю тут
у нас есть некое длинное число

Google

Alexander
26.08.2017
11:18:33
и мы его делим на 2 в 40 степени
так?
а зачем?

Павел
26.08.2017
11:19:30

kapehh
26.08.2017
11:26:36

Роман
26.08.2017
11:27:00
Да да ) пардон or это ?

Alexander
26.08.2017
11:27:01
а, да

kapehh
26.08.2017
11:27:14
В основном используется при таких записях для задания минимально допустимого количества байт для числа.
Т.е. если мы рандомно получим число 0x0000001 то с логическим "или" это будет уже 0x10000000001 и это уже в итоге не 1 а большое число

Alexander
26.08.2017
11:28:11
тут 2 в 40 степени потому что там 48 и получается 48 - 40 = 8
так?

kapehh
26.08.2017
11:28:37
Нет. Из других соображений
Чтобы задать минимальное значение
Типа
if a < 0x1000000:
a += 0x1000000
Примерно так. Но на уровне бит

Alexander
26.08.2017
11:30:29
ясно

Гийденко
26.08.2017
11:30:41

Alexander
26.08.2017
11:31:29
то есть у них будет такая же версия файлов проекта

Гийденко
26.08.2017
11:32:30
extends в композе 3 убрали, было бы удобно

Google

Alexander
26.08.2017
11:32:50
если им нужно какое-либо взаимодействие - то через порты, если нужно расшарить файлы - то можно монтировать ту же самую директорию с хоста

Гийденко
26.08.2017
11:34:09
Я хотел бы сделать сборку образа на лету через compose, а так придется делать образ заранее и в даух сервисах юзать

Alexander
26.08.2017
11:34:36
на продакшене не надо собирать ничего
продакшен - это тупой космодром, там есть шахта для ракеты и всё) сама ракета привозится отдельно, уже собранная
сборка идёт на CI, там прогоняются тесты потом) если статус зелёный - то этот образ можно использовать, если красный - то нет, на продакшене можно запускать только те образы, где успешно прошлись тесты

Гийденко
26.08.2017
11:36:37
Думаю так будет менее костыльно
Так и сделаю, ага

Alexander
26.08.2017
11:37:10
CI ловит события пушей в битбакет и появления новых тегов, билдит и тестирует, потом пушит в Docker registry
а с продакшена идёт туда запрос, получается образ из регистра и идёт запуск образа
и из 1 образа может запуститься 1 или несколько контейнеров
старые контейнеры при этом останавливаются после того, как новые успешно запустились и туда на балансировщике переключился трафик

Гийденко
26.08.2017
11:39:00
Щас какуюто магию рассказываешь. Это где такому учут?

Alexander
26.08.2017
11:39:10
это называется blue green deploy

Eugene
26.08.2017
11:41:08
Хотел просто докер собрать, а тут уже и CI настраивать:D

Alexander
26.08.2017
11:41:09
https://botleg.com/stories/blue-green-deployment-with-docker/

Eugene
26.08.2017
11:41:40
Можно кстати на gitlab/bitbucket использовать их pipiline. но не уверен про бесплатность

kapehh
26.08.2017
11:41:43

Alexander
26.08.2017
11:42:27
ну, докер проще, чем вся эта математика
(лично для меня)

Eugene
26.08.2017
11:43:08

Google

Alexander
26.08.2017
11:43:40
сервер работает, но у меня VPN) так что..
может быть, его заблокировали

Eugene
26.08.2017
11:44:17
+

Alexander
26.08.2017
11:45:10
у докера логотип "синий кит", могли перепутать
?

kapehh
26.08.2017
11:46:18
:D

Eugene
26.08.2017
11:46:56
ну, если бы заблокировали, у меня бы провайдер сообщение вывел:)
мб сам сайт блочит с России?

Alexander
26.08.2017
11:47:19
на одном айпишнике с ним могут быть другие сайты
и какой-нибудь из тех сайтов мог попасть в реестр
через какой-нибудь webproxy можно туда зайти

serbernar
26.08.2017
13:02:51
@lorddaedra

Andrey
26.08.2017
13:04:55
@lorddaedra
Нельзя просто так взять и не вызвать Лорда Даэдра

serbernar
26.08.2017
13:08:41
@amureki

Massimo
26.08.2017
14:07:11
ТАк что блокировали по другой причине

amureki
26.08.2017
14:15:16

serbernar
26.08.2017
14:15:25
Наверное

Roman
26.08.2017
15:07:49
Я бы собрал самостоятельно, раз ингридиенты бесплатно подгоняют.

Google

Oleksandr
26.08.2017
15:10:36

Диёр
26.08.2017
15:11:01

Alexander
26.08.2017
15:55:28
у меня в default поля стоит функция, которой хочется знать имя класса модели, где это поле используется, тут можно как-нибудь получить её? или вручную надо указывать?
ну, к примеру, модель называется User, я хочу чтобы функция в default у поля User.uuid получила "User"

Artem
26.08.2017
15:56:11
Можно

Alexander
26.08.2017
15:57:22
мне хочется генерить уникальные в пределах всей СУБД uuid'шки

Artem
26.08.2017
15:58:06
Посмотри реализацию у поля upload_to. Там должно быть два аргумента, instance, name. Вот у инстансу можно обратиться к мета классу

Alexander
26.08.2017
15:58:11
в итоге я придумал, что можно использовать uuid.uuid1() и указывать в node=... кроме SHA512 от кода ноды ещё и код таблицы
понял, спасибо

Artem
26.08.2017
15:58:59
Либо попробуй в методе def save, обращаться к бд и генерить уже там uniq uuid

Alexander
26.08.2017
15:59:23
этот вариант не оч хороший потому что save() вызывается не всегда

Artem
26.08.2017
16:00:10
Если у тебя постгрес, можно сделать правило для метода insert и чтобы для того поля делалась генерация

Oleg
26.08.2017
16:06:09
Ребят, есть у кого пример проекта с собственной моделью User и с собственной авторизацией? Что делать, если вариантов авторизации должно быть несколько?

ilya
26.08.2017
16:17:51

Oleg
26.08.2017
16:18:58

ilya
26.08.2017
16:19:23
можешь модель пользователя свою делать, если ты об этом беспокоишься

Alexander
26.08.2017
16:20:44