172 похожих чатов

Привет всем. Я к вам за советом и публичным разбором) Я

однажды вычитал типо умный дядька сказал: у вас хорошо организована работа, если ваш проект можно развернуть одной-двумя командами, и вот теперь я парюсь)))

И все бы ничего, но в это раз я имею дело с битриксом. И так: задача: одной-двумя командами поднять копию прода на локале.

Как вам такой велосипед:

$ git clone
клоним проект с гита

$ docker-compose up
запускаем композер на два контейнера

Первый — Окружение для битрикса со всеми php модулями
Второй — Билдим собственный докерфайл из перцоны (mysql), который шел прямо в гите

В докер файле начинается самая настоящая порнография:

FROM percona:latest

USER root

RUN yum -y install openssh-clients sshpass

RUN sshpass -p 'pass' \
ssh -o StrictHostKeyChecking=no root@id \
"docker exec r-container-percona-1-07292be8 \
/usr/bin/mysqldump -u root --password=pass --quick --databases sitemanager0 | gzip" > backup.sql.gz && \
mv backup.sql.gz /docker-entrypoint-initdb.d

USER mysql

EXPOSE 3306

Короче, устанавливаются пакеты для ssh
ssh идет на сервер в докер контейнер, делает дамп базы и скачивает к себе, кладет а entrypoint что бы он развернул этот дамп при первом же запуске.

Это все написал я и вот я теперь думаю, действительно ли это имеет право на жизнь (благодаря этому можно разворачивать проект битрикса двумя командами в терминале)

По-моему в таком случае уже теряется вся суть Докеризации, разве нет?

И действительно ли это порнография, или это достаточно привычная практика, что скажете?

Когда надо сделать редамп базы, то можно просто убить собраный образ и запустить композ заново.

В общем, вот.

2 ответов

10 просмотров

Не совсем понял смысл, обычно сами данные для базы с хоста монтируют, но в целом если проблема хорошо решается, то почему и нет?

условие - одной, двумя командами - бредовое, особенно если это делается таким образом. Базу прода дампить во время разворачивания локального окружения, это ужас. mysqldump вообще-то блокировки на таблицы ставит во время их дампа. А это зависшие запросы у пользователей. Ну напиши скрипт, который поднимает в докере локальный проект, а потом если надо копирует базу из последнего бэкапа

Похожие вопросы

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Открыл свой двухкилобайтный экзешник в x32dbg, а тут какая-то хрень. Смущает кнопка "выполнить до пользовательского кода", а что ещё может быть в файле помимо него ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
11
Мне были интересны дишные хаки и я нашёл любопытный способ на форуме через __traits, что-то вроде int delegate(int) fac = (int n) => n == 0 ? 1 : n * __traits(parent, {})(n - ...
Constantin F.
1
Вопрос тем кто смотрит видео и слушает подкасты - как вы потом ищете нужную вам информацию? Вот статью я прочитал, потом могу искать нужную мне часть банальным поиском. Пропус...
Aleksandr Druzhinin
4
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
14
Ребят, если кто в курсе - скажите, а в загранке такое же засилье маркетплейсов? или там простые сермяжные интернет-магазины живут попроще?
Андрей [aharito] Харитонов
14
Коллеги, доброе утро. Запустил на удаленном хосте приложение (ручками зашел туда по ssh и запустил, не командой удаленно). Создал потом ssh-туннель, и с моей машины приложение...
Δημήτηρ
9
Карта сайта