paulwinex
ну а что это даст? в какомто месте мне надо попробовать подтянуть файл с диска и если он есть то он внесет изменения в переменные. я пока не понял предложение
paulwinex
может в env_file можно несколько указать?
paulwinex
мне надо чтобы композ понимал на продакшоне он или нет
paulwinex
и там надо разные переменные подтягивать
twwlf
сделать симлинки и не коммитить их в репо?
Andrey
paulwinex
сделать симлинки и не коммитить их в репо?
чтото не понимаю хитрость способа. симлинк на что на куда? просто я знаю способ с доп файлом который переписывает некоторые переменные, другие варианты не погу представить пока
paulwinex
paulwinex
paulwinex
env_file действительно можно списокм делать. но если файл не найден то старт отменяется.
Andrey
.env определяет окружение, в которое вы деплоитесь. Теперь вы хотите, чтоб .env определял сам в каком он окружении. Это циклическая зависимость
paulwinex
я то прсосто хочу его немного расширить, определять уже не надо
Andrey
держите разные .env и docker-compose для разных окружений, если у вас они "случились" в одном репозитории
Andrey
и в каком случае вам его надо расширить?
paulwinex
переменную поменять. на dev домен другой
Andrey
не что сделать, а в каком случае
Andrey
ну то есть в случае, если вы на дев
Andrey
а как вы можете определить, что вы деплоитесь на дев?
Andrey
домен другой, да? :)
paulwinex
в случае если это на продакшоне. в моей верси ив случае если есть файл с доп переменными то подтянуть и его тоже. то есть я на продакшоне просто создаю файлик
paulwinex
домен да. на локале я в hosts прописал другой домен чтобы на основной меня тоже пускало
paulwinex
мне даже надо скорей на dev подменять а не продакшоне
Andrey
Ну вот, так дальше руками и делайте. Надоест руками, начнёте оркестратор какой-нибудь использовать с шаблонами.
Andrey
Вы сначала определите, что может быть триггером, а потом от этого триггера отталкивайтесь
paulwinex
ну щас это означает что я на локале перед комитом всегда меняю на оириганльный домен и потом обратно на тестовый чтоли
paulwinex
тригер это наличие файла
paulwinex
из которого дотянуть переменные
paulwinex
с конкретным именем файл
paulwinex
если нето то не тянем
Andrey
и на деве он есть?
paulwinex
да, есть на деве, ет на продакшоне. на продакшоне просто репозиторий чистый
Andrey
есть идея
Andrey
переименуйте .env в репозитории в другое имя
paulwinex
что это дает? композ тогда не стартанёт
Andrey
в композе сделайте прямую ссылку на новое имя через env_file: <new_name>
Andrey
а на dev и на prod используйте специфичные .env
Andrey
https://docs.docker.com/compose/env-file/
paulwinex
нет не понятно. тогда надо и разные yml
Andrey
почему? они будут ссылаться на один и тот же new_env из репы
Andrey
а .env - локальный файл
paulwinex
то есть сделать из env_file список и на продакшоне второй файл сделать пустым?
Andrey
можно и списком
paulwinex
щас попробуем
paulwinex
спасиб
Roman
Здрасть ) Хотел спросить а docker-run запускает depedencies? а что я чего то selenium может только через docker-compose up увидеть контейнер если через run запускаю то не пашет
Roman
вроде как то базу то видет с compose-run
paulwinex
щас попробуем
ррработает в общем, спасиб. только придется на продакшоне пустой файл делать.
Если контейнер меняет ID и в графане старые метрики не будут работать. Так получается? А то я дополнил yml файл и у меня все графики нахер упали
paulwinex
в течение гдето полу года я натыкался на одну проблему, по пол дня пытался решить и бросал каждый раз, чот не получается. и вот опять не пойму в чем бяда, может подскажете.
Есть два контейнера; django проект и postgress. собирается всё композом в котором используется .env файл. КОнтейнер постгреса какраз на энвайроменте инициализируется. В частности порт. Так вот если я указываю стандартный порт постгреса 5432, то всё пучком. Но у меня тогда конфликт на локальных тестах потому что локальный постгрес на такомже. Тогда я просто в .env пишу чонить такое
POSTGRES_PORT=5433
соответственно в docker-compose пишу так
database:
image: postgres:latest
ports:
- ${POSTGRES_PORT}:${POSTGRES_PORT}
...
server
links:
- database:database
depends_on:
- database
в джанго конфиге так
'PORT': os.getenv('POSTGRES_PORT', 5432),
инспектирую контейнер постгреса
"Ports": {
"5432/tcp": null,
"5433/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "5433"
}
]
},
...
"PortBindings": {
"5433/tcp": [
{
"HostIp": "",
"HostPort": "5433"
}
]
},
ну всё вроде норм. Заходу проверяю энвайромент в джанго-контейнере, там тоже правильны порт 5433.
НО... запускаю композ и получаю ошибку
server | conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
server | django.db.utils.OperationalError: could not connect to server: Connection refused
server | Is the server running on host "database" (172.27.0.2) and accepting
server | TCP/IP connections on port 5433?
ну тоесть какбудто база не запущена, не находит её. Где я забыл еще пробить порт или связь?
paulwinex
достаточно продробно описал?
paulwinex
зашел в контейнер, пропинговал базу
paulwinex
paulwinex
смущает строка 5433/tcp closed pyrrho
paulwinex
а если вернуть на дефолт то строка меняется
5432/tcp open postgresql
Roman
блин так помощь нужна а ни кого нету
Roman
если так:
docker-compose run app-childminder python manage.py test application.tests.test_selenium —settings=childminder.settings.dev
то неработает:
selenium.common.exceptions.WebDriverException: Message: Reached error page: about:neterror?e=dnsNotFound&u=http%3A//app-childminder%3A8000/childminder&c=UTF-8&f=regular&d=We%20can%E2%80%99t%20connect%20to%20the%20server%20at%20app-childminder.
если туже команду подать docker-compose.yml то все норм - че за фигня )
paulwinex
ооо, я решил вопрос. просто внутри контейнера базы оставил дефолт а наружу пробросил другой порт.
paulwinex
давай, твоя очередь всё решить самостоятельно)
Roman
)
Roman
а я вот не решил поскольку надо пока процесс бежит узнать че там было открыто джангой
Vadim
какой командой dockerfile отдавать erlcookie для rabbitmq?
Roman
Roman
командой copy
ʎıuǝƃʌƎ
всем привет. а это известная бага, что docker-for-mac не умеет network host? 🤔
arts
Как отучить compose писать в syslog? Для всех сервисов прописано driver: json-file, json-файлы пишутся, но и в сислог продолжает гадить.
Александр
это dockerd пишет
Александр
Александр
Это ничего не меняет. dockerd - это демон докера, который сервисы стартует, а сервисы в docker-compose - это то, что он запускает
ʎıuǝƃʌƎ
кто подскажет захожу в cAdvisor так ip_name:9100/container. Далее перехожу на Docker Container и выводит такую ошибку
гуру подскажите что она означает и как решить ее проблему
в инете пишут в основном про мак
у меня deb 9
Dmytro 🇺🇦
Anonymous
ой, не вам, простите! всем доброго вечера!
Dmytro 🇺🇦
Конечно, не нам