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
Maxim
.
Получается будет два контейнера, один 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
похоже, что да
George
Ivgenich
Вы же не будете нам биткоины предлагать?
Vlad
Vlad
или я не понял какую-то сложную шутку :(
Sergey
.
Все ок с образом, postgis стоит но теперь не могу сделать миграции изза:
SQLSTATE[42704]: Undefined object: 7 ERROR: type "geometry" does not exist at character
.
Права все есть, postgis на базе установлен
.
после того как гуглил говорят что это изза прав или изза того что postgis не стоит, но все проверил все стоит, у когонибудь так было?
Виктор
.
George
George
С эльпайн - не рекомендую. Новичку может быть сложно, а выгод может не быть
George
Тогда уж с голого образа - лучше начинать с дебиан-слим. Если будут проблемы с размером образа - исследовать возможность сделать поверх alpine
Виктор
George
George
Ты, видимо, головняк из-за эльпайн не ловил. Я не отрицаю его, но стоит исходить из задачи
Виктор
Виктор
Виктор
George
Несомненно 🤷♂
Marshall
что делать если запущен контейнер (docker compose) и надо обновить его?
George
George
Берешь и.... Обновляешь)
Виктор
Marshall
Есть у меня приложение на .core, я его запустил через докер и вот все пашет у меня. Я тут в коде пару изменнеие сделал, а вот как залить эти изменние без килл не знаю, новичок еще, докером ток пользуюсь
Виктор
Нуууу, сделай коммит с контейнера
Marshall
не могу правильно сформулировать вопрос в гугл, как сделать коммит с докер контейнера? 😅
Виктор
Marshall
Не в контейнере
Marshall
Нет, только докер внедрять начали
Marshall
Нету
Виктор
Нету
Тогда только пересобрать образ.
George
Образ откуда брали? Сами собирали? Ну, пересоберите, потом docker-compose up -d и сервис перестартует
George
Для интерпретируемых языков - для разработки - удобнее через bind mount прокидывать код в контейнер + настроить hot reload
George
Для компилируемых - сорян. Но для того же голанга тоже есть некий хотрелоад
Виктор
George
George
Если все умещается в рамках локальной машины - можно парой баш скриптов обойтись
George
Marshall
George
George
Для зеро даунтайм надо делать две реплики приложения и реализовывать переключение трафика. Это можно сделать без кубернетеса, но достаточно больно и сложно, если никогда не делал
Marshall
К сожалению кубернейтом еще не пользовались, буду копать в сторону Дженкинса и баш скриптов чтобы на локалке тестить все
Виктор
George
George
George
Там где транзакции - там всякие айбим на архитектуре power
George
Оракл и прочий энтерпрайзз
George
Остальное - там не транзакции, а фигня. Не говорю уже о том, что никакие mission critical системы в здравом уме никто в куб пихать не будет
Виктор
Виктор
Впрочем не будем флудить.
George
Двигатель куба - всякие веб сервисы для бизнеса, реклама. Ну, сдохнет оно. И что? Недополученная прибыль по сути. Местами - убытки прямые.
Но никто не умрет, самолёты падать не будут
Повторюсь - в серьезные системы с резервированием и отказоустойчивостью кубу путь заказан. Иначе сразу можно вешаться или искать новую планету
Yakov
Yakov
George
Yakov
А это не противоречит вышенаписанному )
в идеале, со слов коллег, оставить только саму core архитектуру на железках ( в силу того что это вообще программно-аппартный комплекс, на самом деле), остальное распилить по микросервисам - и в опеншифт :)
Dims
Можно как-то отобразить данные из контейнера на хостовой машине? Как я понял из документации и форумов это делается путем использования директивы VOLUME в Dockerfile, а далее мне нужно прописать volume в docker-compose.yml. но почему-то я все равно получаю пустую директорию.
George