Дмитрий
Дмитрий
Если, скажем, отлаживать это дело, нужно каждый раз удалять контейнер, чтобы проверить, применилось ли?
Дмитрий
Sergey
Дмитрий
Дмитрий
Я вот думаю, может надо таки удалять все контейнеры?
Sergey
у вас может не пробрасываться том правильно если прав нет на точку монтирования
Дмитрий
Дмитрий
или вы имеете в виду права внутри контейнера?
Sergey
Sergey
в чем конкретно трабл, я может что то упускаю
Дмитрий
в чем конкретно трабл, я может что то упускаю
контейнер с бд запускается впервой, нужно, чтобы применялся дамп базы. Далее вопросы, если контейнер запускается уже не в первой, дамп не применится? И где, и что будет с данными бд, которые добавились уже в процессе работы контейнера?
Sergey
1. в зависимости от энтрипоинта и докерфайла, ребилд никто не отменял
2.Когда вы в первый раз прокинули том с базой наружу и после этого убили\изменили контейнер, все данные останутся в томе который был проброшен, тем самым ничего не изменится
Sergey
иначе бы в композе для баз restart:always не было бы смысла
Sergey
он бы херил все данные на корню:)
Дмитрий
Sergey
надо что то такое прописать в entrypoint
если базы нет, грузи дамп
если база есть, юзай том
Vlad
Pasha Chalyk
парни, версии докера на которой собрался имедж и на которой в итоге будет запускаться контейнер должны совпадать?
Aleksey
Pasha Chalyk
Pasha Chalyk
спасибо
Pavel
всем привет
Pavel
что лучше использовать для распределённого volume?
Pavel
По дефолту драйвер local. Мне нужно, чтобы сервисы на разных тачках обращались условно к одному и тому же хранилищу
Pavel
понятное дело, можно запилить fsync/rsync на разных тачках, но это ИМХО совсем костыль
Pavel
кто сталкивался? как решали?
Pasha Chalyk
nfs?
Pavel
ну как вариант согласин, можно
Pavel
а что там лучше будет?
Pavel
на glusterfs ещё смотрю и на flocker
🤖
всем привет, докер форева
Alexander
Всем привет. Ковыряюсь с композом, не понимаю одного вопроса:
db:
env_file: .env.development
image: mariadb:latest
restart: unless-stopped
ports:
- 3333:3306
volumes:
- mysql:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
При запуске композ мне говорит, что MYSQL_ROOT_PASSWORD и MYSQL_DATABASE не определены. Хотя в .env.development эти переменные указаны. При этом, если я .env.development переименую просто в .env и уберу из композа env_file, то всё отлично работает. Доки говорят, что это какие то разные env-файлы, но не понятно, в чём разница и не соображу, как вообще протолкнуть эти переменные не используя "глобальный" env-файл.
Bohdan
web:
env_file:
- web-variables.env
Bohdan
он ждет от тебя массив, а ты ему строку подсунул
странно, что не крашится
Nurlan
Sergey
Sergey
Sergey
а так ты должен явно переменные окружения задать
Bohdan
ну я основываюсь на документации и ошибках, которые вылетали у меня при использовании строки вместо массива в других случаях
Sergey
ну и не должно быть никаких .env.development. точнее кроме девелоперских конфигов никаких .env не должно быть
Bohdan
хм....
Oleg
Ребят, привет, подскажите, какое CI\CD решение лучше для деплоя с гитхаба на remote docker host ?
Sergey
Oleg
Sergey
Поговорка:
Семь бед - один gitlab
Oleg
гитлаб есть. но его не заюзать для ci\cd в гитхабе. только если платно
Sergey
ну за гихаб же платите поди)
Maksym
првиетствую)
помогите плз в настройке локального дев окружения для разработки ангулар и апи.
есть два сервиса в docker-compose - client и server
клиент слушает 80 (основной, обновляет браузер, отдает все) и сервер отвечает за апи. Все запросы которые приходят по определенной маске (/api/* и тд) должны проксироваться на сервер (в моем случае 8000 порт) и клиент отдает их обратно по 80.
Проблема в том что эти два контейнера должны запускаться отдельно в двух терминалах (стдаут, дебагер на сервере), links: - server не подходит.
Есть возможность с client обращаться на localhost:8000 хоста где еспозит сервер? Т.е. через хост их связать
Leo
nginx + location + proxy_pass
Maksym
думаю что-то с сетями нужно проделать, пробую network_mode host
Leo
и выглядит как извращение
Дмитрий
В docker-compose можно ли описать создание crona и будет ли это адекватно работать?
Sergey
Maksym
location?
у меня сейчас оба порта обрабатывают дев сервера, проблема чтобы с одного одстучаться до второго.. подозреваю что их нужно в одну сеть поместить, только вот как чтобы без боли и дополительных движений (не заставлять других девов что-то конфигурить - все через одну команду)
Leo
поставь вначало nginx который будет проксипасить на оба в зависимости от location
Sergey
А можно подробнее?
а как вы в баше делаете запись в крон, так и делайте, в крайняк прокиньте скрипт который допишет в крон
Leo
либо если как ты делаешь, поставь контейнер в nginx
Leo
который будет кидать туда сюад
Leo
Leo
помощь для костылей тут
https://habr.com/company/redmadrobot/blog/305364/
Leo
RUN/CMD
Дмитрий
Спасибо
Maksym
все еще пытаюсь достучаться с одного контейнера в другой
external_links вроде оно, но дальше чем добавить это и пробовать запустить дело не доходит - то сеть ему надо общую то версии не понятно в какой что работает
Maksym
добавил клиенту
external_links:
- 'имя_имеджа_сервера:server'
захожу в клиент шелл
usr/src/client # ping server
ping: bad address 'server'
оно так должно работать? нид хелп
Vladimir
ты докерную сеть создал им ?
Kool
Maksym
не совсем понимаю что такое докерная сеть
явно не создавал, но там етсь
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
1a97e904dbf3 bridge bridge local
4293c949a674 host host local
cead0b15ece2 none null local
эти можно использовать?
Alexandra
Создаешь сеть в compose-fie
networks:
local:
ipam:
config:
- subnet: 169.254.0.32/28
А сервису подключаешь так:
networks:
- local
Maksym
похоже то что надо
subnet: 169.254.0.32/28
уточните что это и какие есть варианты
Sergey
подсетка в которой они адреса получат чтобы пинговать друг друга
Alexandra
Можно даже еще проще:
Задать
"networks:
name_network:"
а сервису:
networks:
- name_network
и тогда он из какого-то дефолтного списка адресов выдаст
Maksym
в таком случае надо связывать линками?
external_links:
- 'ИМЯ:server'