Alex
Привет. Запустил docker на windows 10 docker run -d -p 8081:80 nginx:alpine Пытаюсь в браузере открыть http://localhost:8081 - не открывается
Leo
80 порт проверь
Leo
Точнее
Leo
-p 8081:80 Ты делаешь доступным 8081 порт из докера в 80 на винде
Leo
А не наоборот
Alex
80 тоже не открывается
Leo
-p 80:8081
George
что вы тут несете
Kirill
-p 8081:80 Ты делаешь доступным 8081 порт из докера в 80 на винде
8081 порт винды пробрасывается на 80 контейнера
Alex
docker run -d -p 80:80 nginx:alpine http://localhost тоже не открывает
Alex
Крутится колёсико в браузере. Как будто что-то грузит
Alex
Убрал галочку experimental в настройках Перезагрузил демон и порт стал доступен
Alex
Снова поставил галочку. Перезагрузил - работает
Vitaliy
Привет! Подскажите, как если несколько стаков, сделать так что бы они видели друг друга в сети?
George
+1
Vitaliy
Да, что бы они между собой общаться
Kirill
Да, что бы они между собой общаться
Это был вопрос, который отвечает на ваш вопрос)
Kirill
Создаёте network и добавляете все нужные контейнеры туда
Vitaliy
Это был вопрос, который отвечает на ваш вопрос)
Понял, но как?) возможно пример кода имеется?
Vitaliy
Создать сеть, понимаю, не понимаю как правильно указать в compose добавление
Kirill
Понял, но как?) возможно пример кода имеется?
А у вас доступ к Google/Yandex/DuckDuck есть?)
Vitaliy
А у вас доступ к Google/Yandex/DuckDuck есть?)
Я именно оттуда к вам и пришёл, но намёк понял. Особенности сообщества русского)
Kirill
Я именно оттуда к вам и пришёл, но намёк понял. Особенности сообщества русского)
Просто это весьма распространённый и частый вопрос, проблем с нахождением ответа пока ни у кого не было)
George
ну, тебе надо модифицировать все компоузы, добавить в дополнительную сеть все контейнеры, которые должны общаться вместе
𝙼𝚛. 𝙱𝚘𝚠𝚕𝚎𝚛 𝚠𝙷𝚊𝚝
Всем привет. Пытаюсь написать docker-compose.yml для своего телеграм-бота. Сделал два докерфайла - под x86_64 и arm, мне дали наводку на extends, но он не хочет работать с links. Указывание каждый раз всех файлов для оверрайда (я создал базовый, с оверрайдом на Dockerfile.arm, с tor+privoxy, с tor+privoxy под arm) кажется мне немного костыльным... Что и где я сделал не так?
Andrew
А зачем ? Мне просто интересно :) или у тебя какой то бот для IoT ?
𝙼𝚛. 𝙱𝚘𝚠𝚕𝚎𝚛 𝚠𝙷𝚊𝚝
Зачем докер, зачем под arm или что?
Andrew
Да зачем разделять на x86_64 и arm ?
𝙼𝚛. 𝙱𝚘𝚠𝚕𝚎𝚛 𝚠𝙷𝚊𝚝
Хосчу пока на малинке
George
норм практика - 1. не использовать links, а только networks 2. все переменные части засовывать в .env 3. .env файл может использовать докер-компоузом для интерполяции значений в самом yaml, можно указывать дефолтные значения, если переменная не установлена
George
4. собирать через докер-компоуз - костыльно
𝙼𝚛. 𝙱𝚘𝚠𝚕𝚎𝚛 𝚠𝙷𝚊𝚝
Anonymous
Чем занимаются в докере? Такое ощущение в последнее время, что он не развивается и его лишь поддерживают
George
А как правильно? 🤔
Лучше через docker build -> пуш в регистри, а потом уже вытягивать на узел нужный образ
𝙼𝚛. 𝙱𝚘𝚠𝚕𝚎𝚛 𝚠𝙷𝚊𝚝
Зависимости через докер-компоуз? Ну-ну :-)
Ну так все правильно работает, заупскается в парвильно порядке
George
Ты, наверное, обратил внимание, что докер-компоуз действительно запускает сервисы по порядку, но если они долго стартуют или падают в процессе, то толку от этого нет ( и приходится облкладываться костылями типа wait-for.sh
𝙼𝚛. 𝙱𝚘𝚠𝚕𝚎𝚛 𝚠𝙷𝚊𝚝
Точно также и в systemd придумали dbus activation
George
Точно также и в systemd придумали dbus activation
Ну, при прочих равных системди лучше, чем паковка в докер
𝙼𝚛. 𝙱𝚘𝚠𝚕𝚎𝚛 𝚠𝙷𝚊𝚝
Ну, при прочих равных системди лучше, чем паковка в докер
Но, собвстенно, ни один из четырех советов не решает проблему с разделением docker-compose.yml (или я не понял как). Мне скинуть docker-compose.yml'ы?
George
Потому что очень тяжело понять, что ты хочешь
𝙼𝚛. 𝙱𝚘𝚠𝚕𝚎𝚛 𝚠𝙷𝚊𝚝
Все, что я хочу - чтобы можно было забилдить нужную версию (с прокси/без, для arm/обычную) без повторения docker-compose.yml целиком несколько раз без указания 100500 раз аргумента -f
𝙼𝚛. 𝙱𝚘𝚠𝚕𝚎𝚛 𝚠𝙷𝚊𝚝
Кажется, что проще всего просто повторить несколько раз, а переменные в .env
𝙼𝚛. 𝙱𝚘𝚠𝚕𝚎𝚛 𝚠𝙷𝚊𝚝
Хотя я читал и об аргументах против .env
George
ну, это лучшее, что ты можешь сейчас сделать
George
конечно, можно втащить внешний шаблонизатор....
George
мы делаем так
George
j2 -f yaml ./docker-compose.template.yml.j2 ./values.yml | docker-compose -f /dev/stdin up -d
George
j2 - это питонячья j2cli[yaml] (ставить через pip install)
inqfen
Можно jinja юзать, для неё есть консольные приложение
inqfen
Ну еба, опередил)
𝙼𝚛. 𝙱𝚘𝚠𝚕𝚎𝚛 𝚠𝙷𝚊𝚝
Ясно, пожалуй, просто продублирую :)
𝙼𝚛. 𝙱𝚘𝚠𝚕𝚎𝚛 𝚠𝙷𝚊𝚝
А .env он автоматом подтягвает или надо параметр?
inqfen
Он - это докер композ?
𝙼𝚛. 𝙱𝚘𝚠𝚕𝚎𝚛 𝚠𝙷𝚊𝚝
+
𝙼𝚛. 𝙱𝚘𝚠𝚕𝚎𝚛 𝚠𝙷𝚊𝚝
https://docs.docker.com/compose/env-file/ Я так понимаю это значит, что по дефолту, верно?
inqfen
Ключом указывается или в самом докер композ
inqfen
Если один из, то да, просто.env
𝙼𝚛. 𝙱𝚘𝚠𝚕𝚎𝚛 𝚠𝙷𝚊𝚝
Нашел, env_file
George
А .env он автоматом подтягвает или надо параметр?
Автоматом, из текущего каталога
George
Нашел, env_file
Это другое
𝙼𝚛. 𝙱𝚘𝚠𝚕𝚎𝚛 𝚠𝙷𝚊𝚝
Да, вижу
𝙼𝚛. 𝙱𝚘𝚠𝚕𝚎𝚛 𝚠𝙷𝚊𝚝
Спасибо, так и сделаю - через .env
𝙼𝚛. 𝙱𝚘𝚠𝚕𝚎𝚛 𝚠𝙷𝚊𝚝
А можно ли как-то совместить .env и envieonment в docker-compose.yml? Ну, чтобы HTTPS_PROXY брать из docker-compose.yml, а остальное из .env?
𝙼𝚛. 𝙱𝚘𝚠𝚕𝚎𝚛 𝚠𝙷𝚊𝚝
Я так понимаю, оно по дефолту сначала проходит compose-файл, потом .env, для каждой переменной? Т. е. не будет такого, что на environment-ключе стопнет и и не будет даже смотреть .env?
Andrey
🐳 Lazydocker - tui для работы с docker'ом. Заявлена поддержка мыши, работа с контейнерами, логами, сервисами, слоями, образами и возможность показа графиков для ваших контейнеров. #docker #tui #github