-
Всем приивет. Подскажите пожалуйста, кто настраивал gitlab ci\cd. У меня есть сервис postgres и django. Как реализовать deploy? У меня volume пробрасывается в сервисе postgres, и логи django. Использую shell runner. Нужно как то сохранять бд и логи при билде прода. Может у кого есть примеры какие то или статтьи ?
Ильдар
меняем везде точки на $PWD - полет отличный
у меня нигде PWD не используется. но почему бы и нет)
Alex
Всем привет, Есть возможность вот эту историю с логами /var/lib/docker/containers/[container-id]/[container-id]-json.log именовать не через container-id, а к примеру через tag?
George
пиши логи в журналди и не люби мозг
Alex
Спасибо.
Ilya
Гайс, подскажите, а как проще всего можно запустить дамп постгреса на чистом image?
Ilya
Грубо говоря, у меня есть дамп, я хочу его запустить либо просто в консоли на локалхосте, либо в докер-композе
George
Не понял
George
https://habr.com/ru/post/445914/#first_unread
George
Ещё еда
George
Далее в консоли дампай, что тебе нужно
George
Если нужно подключиться к базе из соседнего контейнера:
Ilya
Не, мне нужно просто запустить с дампом одной командой, без запуска консоли докера
George
docker run -it --rm postgres psql -u user -H postgres_container name 'lalala'
Ilya
Я хочу для интергационных тестов базу с дампа поднимать
George
Можешь даже выхлоп на стдаут, а потом через пайп в файл, чтоб с вольюмами не насиловать мозг
George
Так
George
Если нужно подготовить образ с данными, то на живой базе делаешь пгдамп. Получаешь бинарь. Потом кладешь его в образ. В образ доьавляешь sh скрипт который делает pg restore
George
См доку на официальный образ постгрес
Ilya
Спасибо, попробую так
George
https://hub.docker.com/_/postgres
George
Раздел про Initialization scripts
Gennady
Добрый вечер, господа. Помогите ламеру разобраться. Я не могу разобрать схему развертки приложения в Docker контейнере, в случае, если Host OS - это винда. Есть : Host OS -> Docker Engine,Client,Compose,Machine(???) -> Virtual OS -> Container -> SDK -> APP Или же : Host OS -> Docker Engine,Client,Compose,Machine(???) -> Container -> OS -> SDK -> APP Я понимаю, что вопрос такой себе, но вдруг поможет кто, хотелось бы понять в какой именно момент создается "пространство" в котором общаются контейнеры между собой
George
Лучше было начать с линукса в качестве хост ос
George
Далее рассмотреть мак
Gennady
понимаю, просто .NET разработчик, поэтому на винде.
George
А потом уже винду
Gennady
Если вторая схема. Кто занимается "менеджем" всех контейнеров?
Gennady
Если каждый контейнер поднимает свою OS , то как они обращаются друг к другу? о.о
George
В Винде все сложно. В ней есть прослойка для запуска нативного линукса
Gennady
вот, докер енджин. понял. да, уже вдуплил в эту тему
Gennady
что есть прослойка
Gennady
только что понял что это означало в схемах.
Gennady
спасибо большое.
Phreeman
Всем привет
Phreeman
кто-нибудь datadog в контейрах юзал?
Sergey️
есть такой вольюм image: postgres volumes: - "dbdata:/var/lib/postgresql/data" volumes: dbdata: Лежит он в /var/lib/docker/volumes/blabla_dbdata Хотелось бы положить его в другое место, директорию. Есть такая возможность, или лучше с нуля пересоздать в другом месте (пока есть такая возможность)?
George
Либо можно не останавливать, а дёрнуть лвм снапшотом
George
опять?
Не опять, а все ещё не утихают дебаты вокруг докера
Ильдар
смена юзера в образе на базе scratch: Use the multi-stage Luke! https://medium.com/@lizrice/non-privileged-containers-based-on-the-scratch-image-a80105d6d341
Ильдар
?
George
зачем так делать? в чем профит?
George
типа - вау! мы научились в фром скретч юзера засовывать?
Ильдар
секурити, не? учила же мама - не запускай из под рута.
George
так я ж не против
George
просто что в этом супер ноу хау?
George
потому что скретч?
Ильдар
ну да
Ильдар
глянь, как дядя мучался, пока полароид не изобрели https://stackoverflow.com/questions/26561555/how-to-run-my-go-webapp-in-docker-based-on-scratch-as-the-user-nobody
George
ну, тогда туда нужно подкладывать не passwd из предыдущего шага
George
а тупо passwd.minimal 😊
Anonymous
Есть докер с Apache+PHP+MySQL+OpenSSL, нужно настроить докер таким образом что бы все подключения были через docker, а на сервере остались: БД и тело сайта, но сколько инструкций в интернете, не пойму, куда копать дальше, что уже сделано: 1. Настроен докер, висит на порту 80; 2. Установлен том, docker run -it -p 80:80 --net="host" --privileged -v mSQL:/var/lib/mysql/demo_ehealth apache2_ufw_mysql_php_iit_ulimit /bin/sh; 3. С помощью команды docker volume inspect mSQL выяснил место расположения каталога /var/snap/docker/common/var-lib-docker/volumes/mSQL/_data; В _data скопировал тело сайта и базу данных. Что дальше делать не знаю, буду благодарен уточняющим советам что делать дальше, я так понимаю нужно создавать виртуальный хост для Апач, но как узнать где в докере примонтирован этот каталог? И как прикрепить управление к БД, надеюсь что не нужно создавать IP, достаточно только будет указать порт MySQL, но как его узнать порт и IP?
George
не надо через снап устанавливать докер
George
это самое первое
George
второе - задачу сформулируйте конкретнее
George
что значит на сервере остались бд и тело сайта ? в смысле - в файловой системе?
George
> В _data скопировал тело сайта и базу данных. это ошибка
George
не нужно туда напрямую писать
George
либо делайте нормальный bind mount. Т.е. заводите каталог на хосте /blablabla/site В нем лежит корень сайта. далее монтируете: -v /blablabla/site:/var/www/ (вместо /var/www подставить каталог, который будет соответствовать корню вирт. хоста)
George
но как его узнать порт и IP? - локалхост. Порт стандартный 3306. или какой он там
Anonymous
То есть на сервере должны быть файлы БД и сайта, а управление будет через Докер.
George
если есть сомнения - попробуйте внутри контейнера netstat -tlpn
Anonymous
А это критично через snap?
George
лучше не надо
Anonymous
И можна тогда по соседству разместить папку с БД и сайтом?
George
можно по соседству
George
типа /home/myproject/DB и /home/myproject/www