Vlad
Dockerfile ... COPY docker-entrypoint-initdb.d/init.sh /docker-entrypoint-initdb.d/ docker-entrypoint-initdb.d/init.sh #!/bin/bash set -e export PGUSER=postgres psql --dbname=dbname <<- EOSQL CREATE EXTENSION postgis; EOSQL
.
Получается будет два контейнера, один Postgres один postgis?
Maxim
postgis - это расширение для постгреса тут уже все вшито, тебе остается просто вместо image: postgres:latest, заюзать image:mdillon/postgis:10
Maxim
env variables те же самые, просто указываешь юзера, пароль, имя дб, и у тебя сразу поднимается БД со всеми функциями постгиса
.
О крут
.
👍🏻
.
db: container_name: ${APP_NAME}_database image: mdillon/postgis:10 ports: - 6543:5432 volumes: - ./pgdata:/var/lib/postgresql/data - ./docker/web/db_init.sql:/docker-entrypoint-initdb.d/init.sql environment: - POSTGRES_PASSWORD=postgres - POSTGRES_USER=postgres - POSTGRES_DB=geotech
.
так могу юзать?
George
похоже, что да
Ivgenich
Вы же не будете нам биткоины предлагать?
Vlad
или я не понял какую-то сложную шутку :(
.
Все ок с образом, postgis стоит но теперь не могу сделать миграции изза: SQLSTATE[42704]: Undefined object: 7 ERROR: type "geometry" does not exist at character
.
Права все есть, postgis на базе установлен
.
после того как гуглил говорят что это изза прав или изза того что postgis не стоит, но все проверил все стоит, у когонибудь так было?
Виктор
Все ок с образом, postgis стоит но теперь не могу сделать миграции изза: SQLSTATE[42704]: Undefined object: 7 ERROR: type "geometry" does not exist at character
Вообще лучше не брать готовые образы из хаба, а взять алпайн, задеплоить нужный софт, необходимые для дебага утилиты, и работать со своим образом.
George
С эльпайн - не рекомендую. Новичку может быть сложно, а выгод может не быть
George
Тогда уж с голого образа - лучше начинать с дебиан-слим. Если будут проблемы с размером образа - исследовать возможность сделать поверх alpine
Виктор
С эльпайн - не рекомендую. Новичку может быть сложно, а выгод может не быть
Есть убунта, там привычный atp, но размер образа совсем другой.
George
Ты, видимо, головняк из-за эльпайн не ловил. Я не отрицаю его, но стоит исходить из задачи
Виктор
Ты, видимо, головняк из-за эльпайн не ловил. Я не отрицаю его, но стоит исходить из задачи
Всякое было, работал на убунте, но тимлид разрабов требует алпайн.
George
И я об этом, лучше доточить официальную убунта, чем работать с готовым образом.
Да нифига. Я гарантирую, что официальный образ постгрес я доведу до состояния "постгис работает" в меньшее кол-во действий, чем "убунту + шаманить над ней"
George
Несомненно 🤷‍♂
Marshall
что делать если запущен контейнер (docker compose) и надо обновить его?
George
Берешь и.... Обновляешь)
Виктор
Marshall
Есть у меня приложение на .core, я его запустил через докер и вот все пашет у меня. Я тут в коде пару изменнеие сделал, а вот как залить эти изменние без килл не знаю, новичок еще, докером ток пользуюсь
Виктор
Нуууу, сделай коммит с контейнера
Marshall
не могу правильно сформулировать вопрос в гугл, как сделать коммит с докер контейнера? 😅
Виктор
Marshall
Не в контейнере
Виктор
Не в контейнере
Дженкисом пользуетесь?
Marshall
Нет, только докер внедрять начали
Виктор
Нет, только докер внедрять начали
Файлы с изменениями в вольюме или в аттаченой директории есть?
Marshall
Нету
Виктор
Нету
Тогда только пересобрать образ.
George
Образ откуда брали? Сами собирали? Ну, пересоберите, потом docker-compose up -d и сервис перестартует
George
Для интерпретируемых языков - для разработки - удобнее через bind mount прокидывать код в контейнер + настроить hot reload
George
Для компилируемых - сорян. Но для того же голанга тоже есть некий хотрелоад
Виктор
Для компилируемых - сорян. Но для того же голанга тоже есть некий хотрелоад
Поэтому и нужно идти в сторону Дженкинса, иначе ci/cd не будет.
Marshall
Поэтому и нужно идти в сторону Дженкинса, иначе ci/cd не будет.
Я вот посмотрел про Дженкинс, я так понял он поможет автоматом интегрировать все изменение в моем коде в контейнер? Или я не правильно понял
Marshall
Образ откуда брали? Сами собирали? Ну, пересоберите, потом docker-compose up -d и сервис перестартует
Да сами все ручками собирали и писали) Не охота каждый раз ночью когда трафик маленький заливать какие либо изменние и рестарт всего образа делать
George
Если все умещается в рамках локальной машины - можно парой баш скриптов обойтись
Виктор
Я вот посмотрел про Дженкинс, я так понял он поможет автоматом интегрировать все изменение в моем коде в контейнер? Или я не правильно понял
Примерно да, Дженкинс, мавен и гит, все настраивается и например, по событию пуш, запускается конвейер, который создаёт новый образ и запускает его в той среде, которая указана, например кубер на предпрод стенде.
Виктор
А в чем боязнь рестарта образа ?
Я так понимаю, что дело в даунтайм, которое должно стремиться к нулю
George
Я так понимаю, что дело в даунтайм, которое должно стремиться к нулю
Ну, это не решается "рестартуем образ или не рестартуем"
George
Для зеро даунтайм надо делать две реплики приложения и реализовывать переключение трафика. Это можно сделать без кубернетеса, но достаточно больно и сложно, если никогда не делал
Marshall
К сожалению кубернейтом еще не пользовались, буду копать в сторону Дженкинса и баш скриптов чтобы на локалке тестить все
George
Виктор
Я бы не пихал кубер куда ни попадя. Да и хайлоад бывает разный
Обычно когда потеря каждой транзакции критична для заказчика, а транзакции считаются от сотен в секунду.
George
Там где транзакции - там всякие айбим на архитектуре power
George
Оракл и прочий энтерпрайзз
George
Остальное - там не транзакции, а фигня. Не говорю уже о том, что никакие mission critical системы в здравом уме никто в куб пихать не будет
Виктор
Оракл и прочий энтерпрайзз
Транзакции - это не только банки, оракл уже не в тренде, мы на тнт уходим.
Виктор
Впрочем не будем флудить.
George
Двигатель куба - всякие веб сервисы для бизнеса, реклама. Ну, сдохнет оно. И что? Недополученная прибыль по сути. Местами - убытки прямые. Но никто не умрет, самолёты падать не будут Повторюсь - в серьезные системы с резервированием и отказоустойчивостью кубу путь заказан. Иначе сразу можно вешаться или искать новую планету
George
не нужно вешаться, сухари нужно сушить и носки теплые готовить. Но вообще в энтерпрайзе есть опеншифт, со своей поддержкой. И в случае чего им можно претензии предьявлять :)
Опять же - какой-нибудь банковский софт никто туда совать не будет. Фронты, может обработку больших данных (ну, потеряли 5-10% данных - ничего страшного). Всякий рдп и удаленные столы со спец софтом тоже в куб не сунешь
Yakov
Опять же - какой-нибудь банковский софт никто туда совать не будет. Фронты, может обработку больших данных (ну, потеряли 5-10% данных - ничего страшного). Всякий рдп и удаленные столы со спец софтом тоже в куб не сунешь
все чт опилится для веба - вполне суется уже в некоторы местах. Монолиты распиливаются потихонтьку и каждый микросервис тоже идет в контейнер.
Yakov
А это не противоречит вышенаписанному )
в идеале, со слов коллег, оставить только саму core архитектуру на железках ( в силу того что это вообще программно-аппартный комплекс, на самом деле), остальное распилить по микросервисам - и в опеншифт :)
Dims
Можно как-то отобразить данные из контейнера на хостовой машине? Как я понял из документации и форумов это делается путем использования директивы VOLUME в Dockerfile, а далее мне нужно прописать volume в docker-compose.yml. но почему-то я все равно получаю пустую директорию.