Pull to refresh

Comments 14

докер в 2020 научился работать в режиме сетевой мост как у vmware? чтобы выделялся IP от роутера как отдельное устройство?

Умеет давно, нужно использовать сетевой драйвер macvlan.

попробовал, в роутере нету устройства. Что нужно? Мануал есть какой нормальный
UFO just landed and posted this here

Замечание:


  • mysql-django:/var/lib/mysql

Это не анонимный, а вполне именованный том


Использовать pip с requirements.txt — это уже устаревшая неудобная практика. Лучше сразу начинать использовать poetry.

Мы недостатки pip преодолевали при помощи pip-compile и соответствующего инструментария. Но pip сейчас активно дорабатывают, глядишь, он и научится в зависимости нормально, а не как сейчас.
Да и за poetry от меня плюсик


В качестве БД с Django лучше использовать Postgres. Во-первых, он сам значительно опережает по возможностям и удобству MySQL, во-вторых, интеграция Django с Postgres намного более плотная, чем с MySQL

Мне самому пг нравится больше, но это очень холиварный вопрос. По возможностям мускуль уже сильно продвинулся вперёд. В частности, Мария и галера. Когда там в постгрес мастер-мастер завезут? Ну, и новичкам проще освоиться с мускулем будет. 100%. Единственное, что, кажется, что докер образ постгрес проще, чем мускуль, но это вопрос упаковки, а не самой бд

UFO just landed and posted this here
А чем неактуально «множество неактуальных статей»? Номерами версий?
Во первых да, но также мало статей нашел настройки для mysql. Но сейчас понял что зря искал именно для этой бд) Еще в некоторых статьях были нерабочие примеры, по крайней мере у меня они не хотели работать)
Лучше сделать так:

docker-compose.yml
...
  db:
    image: mysql:5.7
    ports:
      - '3306:3306'
    env_file: .env
...


.env
MYSQL_DATABASE=db_django
MYSQL_USER=root
MYSQL_PASSWORD=password
MYSQL_ROOT_PASSWORD=password

И тогда settings.py что-то вроде:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': os.environ.get('MYSQL_DATABASE'),
        'USER': os.environ.get('MYSQL_USER'),
        'PASSWORD': os.environ.get('MYSQL_PASSWORD'),
        'HOST': os.environ.get('MYSQL_HOST', 'db'),
        'PORT': '3306',
    }
}


И .env добавить в .gitignore не хранить данные продовой базы в репозитории

Лучше не путать .env и env_file. Я не знаю, кто тот гениальный человек, который первый это порекомендовал, но есть разница.
Кратко в том, что .env считывается докер компостом и позволяет делать variable interpolation (почитайте в оф доке, что это такое).
А вот env_file подцепляет env_file и прокидывают ВНУТРЬ контейнера как переменные.
И иногда это дает СТРАННЫЕ эффекты.

UFO just landed and posted this here
Sign up to leave a comment.

Articles