m0nte cr1st0
ну и нужно персистить БД и возможно redis
можно подробнее, что такое "персистить"?
George
можно подробнее, что такое "персистить"?
Сохранять на диск между перезапусками
Alexander
можно подробнее, что такое "персистить"?
при остановке контейнера с БД все данные пропадут, нужно добавить volume, например /opt/slack_bot/mysql_data:/var/lib/mysql
George
При удалении или пересоздании - да
Alexander
спасибо. вот подправил - https://dpaste.de/QHCr#L12
опять же, лишняя операция RUN mkdir /home/slack_bot создаст новый ненужный слой
Alexander
При остановке - нет
ну скорее всего там бдет docker-compose down, а она удаляет контейнеры
m0nte cr1st0
опять же, лишняя операция RUN mkdir /home/slack_bot создаст новый ненужный слой
а если такой дериктории нет, то она создаться благодаря WORKDIR?
George
думаю, что да
George
можно стереть.
George
по идее на контейнеры в host mode они не влияют
Myron
Как можно выплонить команду на хост машине из контейнера, подскажет кто?) Суть в том что надо делать бекап БД( которая в контейнере) другим контейнером😅
Myron
Можно с хостовой машины по крону выдавать команду для бэкапа БД
ну это да, но есть контейнер с nodejs который по кнопке должен делать бекап БД )
Юра
ну это да, но есть контейнер с nodejs который по кнопке должен делать бекап БД )
Охх, идея классная) но тут не подскажу. Если только в машину с nodejs складывать сам дамп, тогда еще как то более менее вяжется
Myron
А зачем доступ до хоста?
ну можно и напрямую контейнером к контейнеру, но я не очень понимаю как)
Andrey
А с хоста типа понимаете?
Myron
docker exec -u postgres postgres_db pg_dump и тд
Andrey
В чем проблема запустить pg_dump в другом месте?
Myron
как варинат думал в nodejs установить postgresql-client, и уже просто командой делать бекап...
Юра
Ну вот это и есть правильный вариант)
Юра
Подмонтировать еще общее хранилище в два контейнера
Юра
и будет тебе счастье
Myron
хорошо, спасибо на этом)
Andrey
Пиздец. Нахера общее хранилище?
Юра
А как ты потом собираешься этими дампами оперировать?
Юра
то есть собираются бэкапы в контейнере с nodejs, дальше что? их все равно надо куда то в хост монтировать
Myron
то есть собираются бэкапы в контейнере с nodejs, дальше что? их все равно надо куда то в хост монтировать
их там же в nodejs контейнере видно, и так же по кнопке можно восстановить дамп
Юра
Ну тут да, моя недальновидность)
Anonymous
ребят, вопрос. Сервис после остановки записывает данные в файл который лежит в этом же проекте. При запуске сервиса после docker build ... нужно читать данные после последней остановки из этого файла. Это нужно юзать volumes и там хранить?
Anonymous
если docker build, до добавь COPY этого файла в Dockerfile из хост машины в собираемый образ
Ок, но из контейнера он не сможет писать в этот файл, я правильно понимаю?
Anatoly
Ок, но из контейнера он не сможет писать в этот файл, я правильно понимаю?
при docker run он может писать в этом файл, но останется внутри контейнера, чтобы его вывести наружу используй уже volume. но при билде, если он тебе нужен, то используй COPY
Anatoly
вообщем, все зависит от того для чего тебе этот файл при билде.
Anatoly
если он нафиг не нужен, то в docker run пробрасывай хостовые волумы в контейнер и храни уже на хосте требуемый файл.
Anonymous
При билде докера и старта проекта из него просто берется номер(просто цифры) последней сущности, который требуется для старта проекта. Когда проект слышит команду exit, term он перед остановкой сохраняет в этот файл обновленные данные. Т.е насколько понял, мне нужен проброс волумов?
Alex
Привет! Подскажите пожалуйста делаю docker-compose ud -d - и по умолчанию компоуз создает сеть - как сделат что бы не создавала?
George
network host mode?
George
или сеть указать как external - если она заранее создана
Alex
или сеть указать как external - если она заранее создана
мне просто по умолчанию в ту что докер создал - в NAME:bridge
Alex
компоуз простой version: "3.6" services: chat-backend: container_name: chat-backend-staging image: gitlab.key-g.com:5000/chat:39990 ports: - "8311:8300" restart: always
Alex
У тебя же порты пробрасываются - это без бриджа не работает
так мне в бриж в тот что по умолчанию NETWORK ID NAME DRIVER SCOPE d6454972d429 bridge bridge local d33eba589f51 host host local 3e9804de8dd3 none null local
Anonymous
гайз, а не подскажите, есть такое же сообщенство но SQL?
Anonymous
https://t.me/dba_ru
спасибо!
Alex
или сеть указать как external - если она заранее создана
спасибо вот так работает networks: default: external: name: network1
Aleksandr
Вопрос для извращенцев, добро пожаловать! Итак, имеется сервер 2008 r2, на нем крутится в hyper-v виртуальный дебиан, на котором крутится докер. На виндовсе я шарю директорию стандартными средствами и монтирую ее в дебиан через ntfs-3g. Запускаю докер и указываю для mysql волум папку на винде. Ничего не работает потому что при монтировании я вопервых монтирую от root, во вторых монтирую в rw, соотвественно контейнер mysql хочет поменять права папкам внутри и не может, так как смонтированный том идет со статическими правами. Вопрос: как нить можно замонтировать виндовый том, чтобы права в линуксе были динамически выставляемыми? на WSL рекомендуют DRVFS но я чето не нашел релейшенов на него в доках дебиана
Aleksandr
сорян за сумбурность, был взволнован
Anonymous
если что-то надо записать на хост машину, да
Делаю: docker run -v /host/directory:/container/directory ..... в итоге контейнер не изменяет хост, но в контейнере вижу что данные изменяются. Что может быть не так?
Anonymous
нет)
Anonymous
объявил, но результата нет. Но это потому что я блондинка) Я работаю через докер машину, и жду когда у меня из контейнера на удаленном серваке придут изменения в файл на локальную машину. Так же не будет работать, правильно?)
m0nte cr1st0
Может кто подсказать? https://stackoverflow.com/questions/58029324/2002-cant-connect-to-local-mysql-server-through-socket-run-mysqld-mysqld-so
George
что не так то?
m0nte cr1st0
что не так то?
ошибка. вот весь трейсбек - https://dpaste.de/c4DX
maestro
Подскажите, плез, возможно ли из Docker-контейнера получить доступ к COM-портам компа, на котором запущен контейнер или всё только внутри контейнера должно быть?
Anonymous
Никто не сталкивался с manifest invalid: Only application/vnd.docker.distribution.manifest.v2+json manifest format is supported ?
George
Нет
George
вЕнда?
Anonymous
Anonymous
centos
Anonymous
Docker push
George
Хм
Anonymous
George
А регистри какой?
George
Версии докера ?
Anonymous
yandex облако регистри
Anonymous
До этого всё ок было
Anonymous
там идет docker build а потом push
George
Ну, и может привилежед включить
maestro
Да, можно
А есть рабочий мануал? Я читал, что вариант запустить контейнер в привилегированном режиме.