Pavel
ну разрабатываю конечно на своей рабочей станции
Pavel
на проде совсем другое, там SWARM
Sergey
это как, не понимаю
для всего ставят обычно одну платформу, иначе смысла нет, ты разработал, замониторил, протестировал, а на другом дистре у тебя не получилось того же эффекта
Pavel
на Деве понятное дело все просто, там тупо папки из локалки подключены как волумы
Sergey
на Деве понятное дело все просто, там тупо папки из локалки подключены как волумы
дисковая подсистема тоже желательна одинаковая а то смысл ты разрабатываешь на ssd дисках, а деплоить на простые
Alex
Ребята всем привет - может кто подскажет как консольную команду переделать под запуск через dockerfile
Alex
docker run -d\ --name graphite-ubuntu-16-04\ --restart=always\ -p 8080:8080\ -p 2003:2003\ -p 2004:2004\ -p 7002:7002\ schaubl/graphite
Alex
что бы в конечном итоге я просто выполнил docker run -d --restart=always schaubl/graphite
Alex
билд я заранее сделаю
Alex
docker build -t schaubl/graphite /(путь к докерфайлу)
Alex
просто как я в докерфайле не прописывал эти порты в EXPOSE у меня приложение не работает
Alex
dockerfile я делал как:
Alex
FROM schaubl/graphite:latest EXPOSE 8080:8080 EXPOSE 2003:2003 EXPOSE 2004:2004 EXPOSE 7002:7002
Pavel
Добрый день Коллеги, есть небольшой вопрос по сетям docker. Есть сервисы в контейнере и сеть создаваемая при старте. Настройки по умолчанию. Есть облачные провайдеры представляющие сервисы, например база данных. Я хочу чтобы контейнеры получали доступ к этим сервисам. Я правильно понимаю что достаточно в контейнер добавить строчку файла hosts для разрешения короткого имени в адрес, или неправильно и есть способ проще?
Vladimir
docker run -d\ --name graphite-ubuntu-16-04\ --restart=always\ -p 8080:8080\ -p 2003:2003\ -p 2004:2004\ -p 7002:7002\ schaubl/graphite
а что тебя смущает в этой команде? мб через docker-compose запускать?
Alex
а что тебя смущает в этой команде? мб через docker-compose запускать?
ну например ансиблом я прокидываю этот докерфайл на сервер и им же его запускаю (я понимаю что в ансибле есть специальные для этого модули для запуска контейнеров) но я хотел именно через докерфайл это делать - можно и компойзем попробовать но я предпологал его использовать если бы я хотел развернуть более одного контейнера
Alex
в общем я все делаю через ансибл - но зашивать такую здаровенную команду в command: как не комельфо))
Vladimir
ну например ансиблом я прокидываю этот докерфайл на сервер и им же его запускаю (я понимаю что в ансибле есть специальные для этого модули для запуска контейнеров) но я хотел именно через докерфайл это делать - можно и компойзем попробовать но я предпологал его использовать если бы я хотел развернуть более одного контейнера
я бы на твоем месте сборку и запуск контейнера разделил на разные пайплайны. у ансибла docker и docker-compose модули относительно нормальные. ты бы сделал темплейт docker-compose файла, закинул его в роль, что бы была возможность версионирования
Pavel
дисковая подсистема тоже желательна одинаковая а то смысл ты разрабатываешь на ssd дисках, а деплоить на простые
Тааак, я уже философию Докер не понимаю Например у меня тут образ для прода, весит аж 2Гига Нарпимер там тупо папка node_modules весит 300+Мб Не говоря о софте которая собирает все это, ведь на проде нужны только собранный проект, без утилит для компиляции и исходников
Andor
удали
Sergey
я тебе только за родительские образы сказал
Sergey
если ты разработку и тестирование ведешь на from:ubutnu то и проду на нем катаешь
Vladimir
Тааак, я уже философию Докер не понимаю Например у меня тут образ для прода, весит аж 2Гига Нарпимер там тупо папка node_modules весит 300+Мб Не говоря о софте которая собирает все это, ведь на проде нужны только собранный проект, без утилит для компиляции и исходников
в версии докера 17.05 добавили мультистейджинг. если речь идет о контейнерс с фронтом, то ты можешь все собрать в контейнере с nodejs, после этого перекинуть всю статику в контейнер с nginx и будет он у тебя весить в итоге 20 Мб примерно
Vladimir
https://docs.docker.com/develop/develop-images/multistage-build/
Antonio
Есть docker с nginx и несколько виртуальных хостов. Полез настроить на одном из них ssl. В результате при попытке зайти на хост браузер "вечно ждет ответа". Убрал SSL, взял конфиг с соседнего хоста - не попмогает. После нескольких таких запросов к хосту, аналогично начинают вести себя и другие.
Antonio
из другого контейнера при обращении по алису к данному контейнеру - страница отдается нормально
Antonio
подозрения, что где-то в докере теряется запрос
Antonio
как такое можно отдебажить?
George
никогда не будет так, что прод ~ тест
George
но обычно это и не нужно. Есть допустимые отклонения. Вот пускай разрабы и тимлиды определяют - норм ли это собирать в тесте эльпайн, а потом катить дебиан
Sergey
никогда не будет так, что прод ~ тест
я тебе про базовые говорю смысл ты свои имеджи протестировал а катишь вообще левые
George
и, да, это не отменяет наличие нормальных тестов на продовые образы, чтобы все не сгорело
George
в общем я все делаю через ансибл - но зашивать такую здаровенную команду в command: как не комельфо))
ну, опиши все в своем кастомном command 😉 expose тебе все равно придется через docker run передавать
Igor
но обычно это и не нужно. Есть допустимые отклонения. Вот пускай разрабы и тимлиды определяют - норм ли это собирать в тесте эльпайн, а потом катить дебиан
А вообще на каких HOST OS принято поднимать docker в продакш: специализированные CoreOS, Alpine или берутся банальные проверенные Debian(Ubuntu), Centos. Best practices вообщем интересны.
Nazar
Пацаны как сделать такой движ в докере, что бы было 2 или 3 контейнера одинаковых на одном днс и что бы они балансились раунд робином например в компоузе например
George
к тому же, надо понимать, что есть куча вариантов ГДЕ докер будет - баре метал, виртуализированная среда
Igor
Если металл
George
и для первой, например, кореос и эльпайн далеко не лучшие решения, т.к., например, могут быть нюансы со спец оборудованием
Petr
все на одном серваке будет?
Nazar
Ну как в кубике несколько под, только без кубика
Nazar
На уровне контейнеров можно?
Nazar
Без сворма
Petr
а зачем так делать, конечно можно
George
в самом докере никак. Но можно в обычном докере закрыть сервисы traefik и им раундробином раскидать
Nazar
Типа говорили что можно сделать несколько контейнеров и прописать одинаковый нетворк елиас
Nazar
Или как то так
Petr
не понятно про один днс
Petr
хоть сколько контейнеров понаплоди и балансируй
Petr
ничто не мешает
George
George
при этом ДНС должен указывать на внешний айпи хоста с докером
Nazar
зачем?
ну можно сделать 3 контейнера и балансить нгинксом
Nazar
а можно наверное получше это сделать)
Petr
непонятно для чего делать так, ладно ты бы выносил nginx и у тебя были поды. А тут одни мощности, можно конечно ресурсы ограничить, но это все как то не очень работает
George
вероятно имеется в виду, что нужно забить все мощности бекендами
George
например, там пайтон, который не умеет нормально в многопоток из коробки
Petr
единственная причина, по которой стоит так делать, это если приложение у тебя падает, остальные остаются в строю.
Nazar
можно сделать встроенными возможностями
Nazar
но это бед практис
Nazar
+хочу сделать когда апдейтится имейдж сервис продолжал работать
Petr
так он и продолжит работать
Nazar
если я делаю docker-compose pull app && docker-compose up -d сервис не будет недоступен? пока рестартится ап?) как это возможно если например http сервер стартует 10 секунд например
Artur
сервис не будет недоступен? при наличии одной ноды, будет недоступен
Nazar
ну вот
Anonymous
Добрый день, кто может подсказать по сетке. Есть два контейнера, собираются все ок, если запускать их через docker run - сервисы доступны в сети, но при запуске через docker-compose up сервисы недоступны по сетке, version: "3.7" services: router: image: project/router volumes: - /home/$USER/volumes/router:$GOPATH/src/gitlab.com/project/router ports: - "8080:8080" networks: - default redmine-connector: image: project/redmine-connector volumes: - /home/tester/volumes/redmine-connector:$GOPATH/src/gitlab.com/project/redmine-connector ports: - "8081:8081" networks: - default
Anonymous
Nazar
Докер компоуз - это не про роллинг апдейт, так-то
я понимаю, но блин городить сварм или кубик в моем случае будет оверхед