Vasiliy
А как ты запускаешь ?
Запускаю в интеграционном тесте в Intellij Idea. Библиотека Testcontainers должна поднять тестовый контейнер с базой данных на рандомном порту, потом происходит тестирование приложения с этим контейнером, а после теста библиотека этот контейнер удаляет. Но все валится на запуске. Если я все правильно понимаю, для старта ей нужна docker-machine
Aleksey
В бей плиз что не пойму в чем траблы (((вроде должно на изи
Денис 🇷🇺
Ребят кто подскажет.. вот вроде удобно docker-compose.yml все расписать нужные сервисы.. а есть вариант создать какойнить файл типо makefile и там расписать генерацию образов и потом запуск из них контейнеров.. потому что чаще вижу и обучение по докеру чаще просто команды докера обучают ..
Денис 🇷🇺
Еще такой момент я могу запустить docker-compose там у меня nginx проксирует на порт 3000 скажем.. а сам контейнер на который он проксирует запускается отдельно командой docker run.. но почему то nginx говорит при обращении на этот сервер по этому урлу он говорит connection refuse типо занято ..
Денис 🇷🇺
напрямую curl http://127.0.0.1:3000 виден сервис
Денис 🇷🇺
настройки сервера на проксирование
Денис 🇷🇺
что не так не могу понять но напрямую через nginx этот сервис не проксируется
Siroga 🇺🇦
Судя по Вашему сообщению контейнер с nginx и контейнер на 3000ом порту разные контейнеры.
Siroga 🇺🇦
И у них у каждого свой 127.0.0.1
Siroga 🇺🇦
Вам нужно чтобы контейнер который на 300-м порту слушал 0.0.0.0 а не 127.0.0.1, а nginx проксировал не на 127.0.0.1 а на ІР другого контейнера.
Siroga 🇺🇦
Или по имени если они в одной сети
Siroga 🇺🇦
Имеется ввиду docker network
Денис 🇷🇺
значит в nginx конфиге надо прописать проксирование на 0.0.0.0:3000
Siroga 🇺🇦
значит в nginx конфиге надо прописать проксирование на 0.0.0.0:3000
Это просто проброс порт хоста в контейнер. Не факт что в контейнере node_app слушаюся все интерфейсы. Но это легко проверить зайдя в контейнер c node_app и запустив там netstat
Siroga 🇺🇦
значит в nginx конфиге надо прописать проксирование на 0.0.0.0:3000
Нет, Вам нужно проксировать на ІР контейнера с node_app
Денис 🇷🇺
Нет, Вам нужно проксировать на ІР контейнера с node_app
а разве при рестарте IP контейнера не меняется?
Денис 🇷🇺
просто я почему его отделил потому что этот контейнер будет пересобирать другой разработчик и чтобы он не дергал остальные контейнеры я ему хочу отдать чтоб он свой контейнер пересобирал и запускал перезапускал
Siroga 🇺🇦
Ну так пускай перезапускает, поместите их в одну сеть, і в nginx проксируйте на http://node_app:3000
Siroga 🇺🇦
netstat -tnpl | grep 3000
Siroga 🇺🇦
и запускать нужно в контейнере node_app
Денис 🇷🇺
Ну так пускай перезапускает, поместите их в одну сеть, і в nginx проксируйте на http://node_app:3000
просто когда запуститься docker-compose и там nginx не обнаружит проксирование на контейнер (он пока не будет запущен который отдельно запускается тот который node_app) то nginx начинает перезапускаться... и падать с ошибкой
Денис 🇷🇺
и запускать нужно в контейнере node_app
вот в контейнере запустил
Siroga 🇺🇦
И хрен с ним, пускай падает. Он ведь перезапустится. А вот чтобы избежать таких падений. запускайте node_app перед docker-compose
Денис 🇷🇺
хорошо сейчас попробую а сеть создать типа bridge
Siroga 🇺🇦
вот в контейнере запустил
Тут все ок. 3000й порт слушается на всех интерфейсах. Значить проброс портов с хоста будет работать. А значить остается правильно спроксировать nginx
Денис 🇷🇺
вот вроде пробросил.. но все равно не видит
Siroga 🇺🇦
срока proxy_pass неправильная
Денис 🇷🇺
а как надо?
Siroga 🇺🇦
там не должно быть 0.0.0.0
Денис 🇷🇺
а что там поставить?
Siroga 🇺🇦
а как надо?
Я писал выше что там должно быть. Перечитайте
Денис 🇷🇺
Siroga 🇺🇦
Почитайте про docker network connect
Siroga 🇺🇦
А в чем проблема разместить в одной сети?
Денис 🇷🇺
А в чем проблема разместить в одной сети?
да в итоге так и сделал .. создал сеть.. прописал в docker-compose external network чтобы подконнектится к уже существующей сети . .и тоже самое сделал коннект с отдельного контейнера.. и просто спроксировал на node_app:3000 и все взлетело теперь можно перезапускать, стопать и т.д. отдельный контейнер вне зависимости от других
Денис 🇷🇺
единственное сеть создавал так - docker network create --driver=bridge --subnet=172.28.0.0/16 --ip-range=172.28.5.0/24 --gateway=172.28.5.254 terminal-network .. надо ли жестко прописывать адреса шлюз?
EN
Подскажите, где ошибка. База данных не создается mysql: image: mysql:8.0 container_name: mysql restart: always ports: - "3300:3306" volumes: - ./Docker/mysql/data:/var/lib/mysql environment: MYSQL_DATABASE: my MYSQL_USER: user MYSQL_PASSWORD: pass MYSQL_ROOT_PASSWORD: password networks: - php
Null
#вакансия #удалённо #job #remote #parttime #преподаватель #ml #cv #Компьютерноезрение #mlops Компания: 🦉OTUS – образовательная платформа. Мы 5 лет специализируемся на курсах для IT-специалистов разного уровня: от junior до senior. У нас более 140 авторских курсов. И мы проверяем знания наших клиентов еще до начала обучения, чтобы порекомендовать им наиболее подходящие курсы. Вакансия: преподаватель онлайн-курсов: MLOps Компьютерное зрение Reinforcement Learning Machine Learning. Advanced Преподаватель использует презентацию с теорией и практические примеры, чтобы раскрыть тему урока. Наши методисты помогут вам освоить лучшие инструменты и практики преподавания. И это отличная возможность, чтобы: ✅ публично выступать и работать с аудиторией; ✅ научиться давать обратную связь; ✅ структурировать свои знания. Локация: удаленно; сами определяете нагрузку и выбираете, на какие темы преподавать. Занятия проходят в вечернее время. Вознаграждение💰 Ставка за 1 вебинар (полтора часа) – от 4000 до 6000 руб. Есть дополнительные активности на ваше усмотрение, они оплачиваются отдельно. У нас классная команда 650+ экспертов с уникальными компетенциями из различных компаний. Мы учимся друг у друга, советуемся, помогаем, делимся опытом, обсуждаем новости как в преподавании, так и по проектам. Вы сможете: 🎁 проходить наши курсы со скидкой; 💪 набирать себе команду из лучших студентов; 💸 совмещать с текущей фулл-тайм загрузкой. Хотите узнать больше? @HR_Nikita
EN
Спасибо, вопрос решился - в папке mysql/data были данные, поэтому БД не создавалась.
TK
Коллеги, кто нибудь делал обратный прокси сервер nginx в контейнере? Задача запустить прокси сервер с поддержкой ssl, он будет смотреть в наружу и будет запросы отдавать внутренним веб серверам.
TK
Нужен годный мануал или пример если есть в гит. Что бы можно было под себя поднастроить и запустить.
Alexander
Traefik проще под такие цели использовать.
Если все внутренние веб-сервера в том же докере или в сварме.
Aleksey
Может не правильно тебя понял
Aleksey
У меня схема такая 2инджинкса один смотрит наружу
Aleksey
И берет сертификат лёд скрипт
TK
Если все внутренние веб-сервера в том же докере или в сварме.
Все сервера внутренние, ssl сертификат должен лежать на сервере nginx и все, все запросы распределяет по внутренним веб серверам.
Aleksey
У тебя докер с инжиксом в композере ?
Aleksey
Вот я запутался не пойму в чем проблема
Nickolay
Привет! Подскажите пожалуйста, существуют ли какие-то подводные камни с использованием переменных окружения из environment в command в docker-compose и swarm? Что-то у меня они не хотят выводиться. Через printenv все норм. А вот ["sh", "-c", "echo \"$ENV\""] ничего, просто строка "echo \"$ENV\"" тоже ничего. Если зайти в запущенный контейнер через exec, то все уже работает в этом же шелле. Это получается в command не доходят переменные или я что-то не так делают?
Nickolay
Я так понял проблема в том, что если указать $ENV прямо в command, то туда подставляется переменная с хоста и уже итог этого передается в контейнер. Но можно ли как-то экранировать $ENV, чтобы на хосте оно не подставилось, но при этом чтобы в контейнере уже подставилось.
@@@@@
Добрый день. Запускаю 2 разных docker compose в 1м софт открывает порт 9200 в 2м софт стучиться на порт ip:9200 второй софт на докер компосе не может достучаться до порта ip сервера : 9200 что не так делаю?
George
Показать полный текст докер компоузов, вывод docker ps после запуска
kami no me🇷🇺☦️
запустил контейнер с приложением, пишет что на 5000 порту прослушивается, когда перехожу на localhost:5000 ожидаю увидеть сваггер, но ничего не выдает, в чем может быть проблема?
kami no me🇷🇺☦️
kami no me🇷🇺☦️
kami no me🇷🇺☦️
В контейнере укажите биндить на 0.0.0.0 в не на локалхось
подскажите пожалуйста как это сделать
Vitaly
Не подскажу про дотнет, но мне кажется что в строке env надо указать верно
Vitaly
Ну и строку запуска покажите
Vitaly
Пробросили ли вы порт из контейнера
kami no me🇷🇺☦️
Vitaly
Да
Vitaly
И где вы в нем 5000 порт пробросили?
kami no me🇷🇺☦️
Vitaly
Да
Vitaly
Ну и как я выше написал, бинды внутри контейнера не на длкаост
kami no me🇷🇺☦️
Ну и как я выше написал, бинды внутри контейнера не на длкаост
Не помогло. Это правильная статья о биндах? https://docs.docker.com/storage/bind-mounts/