DΞFAULT
Тебе скинули доки, можешь ознакомиться подробнее.
Anton
Изучаем <em class="searched-item">Docker</em>, часть 6: работа с данными https://habr.com/ru/company/ruvds/blog/441574/
AF
Не пойму, что не так тут. Вроде запускаю контейнер. docker run --name postgres -v /Users/fa/Documents/sourcecode/shared/postgree/:/var/lib/postgresql/data -d -p 5432:5432 -e POSTGRES_PASSWORD=Oradoc_db1 postgres fb5dbd88e44b1b5a5ce9f919bd54d1c948e5038fa969045411e9a2c62af1caf9 fa ~ docker exec -it postgres bash Error response from daemon: Container fb5dbd88e44b1b5a5ce9f919bd54d1c948e5038fa969045411e9a2c62af1caf9 is not running
Vladimir
docker ps посмотри, у тебя контейнер не запустился, скорее всего
AF
Да, он не запускается. в ps его тоже не видно
Vladimir
Попробуй, к docker run добавить -d
simplemice.eth
docker logs
Vladimir
там стоит же
Пропустил(
Vladimir
Тогда да, dicker logs в помощь
AF
логи наше все) всем спасибо
AF
initdb: directory "/var/lib/postgresql/data" exists but is not empty
Maxim
Подскажите новичку, как правильно организовать разделение на окружения? есть разработчики - им нужны дэбагеры и какие-то профилировщики, есть тестовое окружение и в тестовом не должно быть дэбагеров и профилировщиков и тестовое окружение один в один как production окружение, отличается только доменом от production окружения. Домены победил с помощью переменных окружения, но как быть с дэбагерами для разработчиков и возможностью редактировать код - запутался. Может кто нибудь уже сталкивался с проблемой и знает решение? Буду признателен. В документации не нашел рекомендаций, но может невнимательно читал.
George
FROM base as my_base .... FROM my_base as debug RUN установить дебаггеры FROM my_base as test RUN установить тестовые утилиты
George
Можно одним чохом их собирать. Ну, и честно говоря, я не очень уверен, что реально дебаггеры и тест кейсы должны быть в том же образе
Maxim
Язык хотя бы какой?
php, node.js, java, python
Vladimir
Можно одним чохом их собирать. Ну, и честно говоря, я не очень уверен, что реально дебаггеры и тест кейсы должны быть в том же образе
Ну, у java, например есть удаленные дебагеры, а включать их можно через etrypoint и переменные окружения. Для руби тоже, можно через переменную окружения
Maxim
Ну, тебе придется сделать три докер-образа. Самое просто - в одном докер файле определить три образа
Если у меня 4 сервиса то получится 12 образов? Становится страшно, ради четырех делать 12
Vladimir
php, node.js, java, python
Уточни, сначало как запускаются и что для них нужно. На php, многие фраемворки поддерживают разделение на прод и stage из коробки
Maxim
Уточни, сначало как запускаются и что для них нужно. На php, многие фраемворки поддерживают разделение на прод и stage из коробки
Например php, как некомпилируемый и на мой взгляд с ним проще чем с компилируемым, но не пойму как именно. Фрэймворк yii2. Для дэбага необходим xdebug модуль php, должен быть установлен в образ для разработчика, как я понял код нужно монтировать в образ, а для тестового и прода нужно код переписывать в образ для доставки на сервера и не должно быть при этом xdebug. И вот запутался как правильно сделать, два образа - это было первое решение, но планируется сервисов больше чем 4 и тогда - тушите свет, как рулить таким зоопарком образов docker
Vladimir
Вот, примерная концепт, того про что я говорил
George
Например php, как некомпилируемый и на мой взгляд с ним проще чем с компилируемым, но не пойму как именно. Фрэймворк yii2. Для дэбага необходим xdebug модуль php, должен быть установлен в образ для разработчика, как я понял код нужно монтировать в образ, а для тестового и прода нужно код переписывать в образ для доставки на сервера и не должно быть при этом xdebug. И вот запутался как правильно сделать, два образа - это было первое решение, но планируется сервисов больше чем 4 и тогда - тушите свет, как рулить таким зоопарком образов docker
Ну, вариантов концептуально два: 1. Образ один и тот же, но разные конфигурационные настройки 2. Образы разные. Ещё накину. Все файлы кода должны быть внутри образа. Это сильно упрощает доставку. Т.к. в противном случае нужно доставлять три сущности: 1. Образы контейнеров 2. Докер компоуз или любое описание конфигурации контейнеров 3. Код Я же предлагаю обойтись 1+2. Далее. Код в вольюме - это удобно для разработки, т.к. позволяет оперативно вносить изменения. Для компилируемых языков и пайтона есть вообще хотрелоад при изменении кода
George
Но в проде - все изменения через регламентную процедуру в виде заливки обновленных образов. Что ещё сказать...
George
А, если наживую меняете код внутри запущенного контейнера, то изменения живут до пересоздания контейнера. Т.е. docker stop ОЧЕВИДНО не обнуляет эфемерную файловую систему контейнера :-) но для многих этот момент неясен
Maxim
https://serversforhackers.com/c/disable-in-prod
Для php это прям то что нужно, спасибо! В итоге для некомпилируемых типа php с дэбагером можно просто не загружать дэбагер, это отличное решение! Один образ для всех окружений, ура!
Maxim
Осталось с компилируемыми разобраться
George
О да) Это для многих сюрпризом является) А потом, бегают и удивляются, куда делись мои данные
Это в обе стороны работает. И в сторону куда делись данные, и в обратную - а почему файлы в контейнере изменённые, мы же вольюм не делали
Михаил
Всем ку, поделитесь опытом юзеры win10, как вы используете докер? У кого-то тулбокс работает корректно?
Vladimir
Осталось с компилируемыми разобраться
Все дело, в том что нужно для дебага
Михаил
Стоит на win, без прослоек
С включённой виртуализацией?
Maxim
Все дело, в том что нужно для дебага
node.js вроде нужно собрать приложение с ключем development и тогда он будет использовать web socket для дэбага в chrome dev tools, для java необходимо что то подобное но разработчики еще не скинули описание, скорее всего пришлют скриншоты из Intellij или подобной ide, для python вроде так же как для php, но не уверен, разработчики подключатся только через неделю но думаю что раз нет необходимости компилировать то подход наверняка такой же как с php
a1eXei
Всем ку, поделитесь опытом юзеры win10, как вы используете докер? У кого-то тулбокс работает корректно?
Docker for windows установлен, и для удобства управления и сборки образов настроил docker в wsl
a1eXei
Тулбоксом не пользовался
Vladimir
И решается, ключами java и как следствие, так же, через etrypoint скрипт
Anonymous
Maxim
Благодарю за подсказки, очень выручили!
Max
Всем привет.
Max
Есть задача: опубликовать пул портов. Т.е. docker run -p 100-200:80 ... Как-то так. Это возможно?
George
Привет. Здесь можно сразу задавать вопрос, без прелюдий
George
Есть задача: опубликовать пул портов. Т.е. docker run -p 100-200:80 ... Как-то так. Это возможно?
если у тебя есть в Dockerfile нужное кол-во EXPOSE - есть параметр -P
George
если нужно ВЕСЬ диапазон зарулить в 80-й, то ты используешь не то средство - тебе нужно настраивать файрволл, иначе это будет не эффективно
George
я уж не говорю про то, что формулировка задачи весьма занятная. зачем тебе это?
Max
Тест. ) Имено что на 1 порт.
Viktor
Тест ради теста)
Max
Есть вариант перебоать все по очереди, но это как-то не айс.
Max
Ладно, спасибо. Прояснили.
George
эм... for цикл в баше отменили?
Alexey
Roman
Привет! Имеется такой вот докер файл: FROM php:7.2-fpm-alpine3.8 RUN docker-php-ext-install sockets \ && docker-php-ext-enable sockets WORKDIR /var/www COPY www.conf /usr/local/etc/php-fpm.d/ COPY . /var/www Подскажите пожалуйста, как мне выдать права в /var/www* для www-data без добавления еще одного слоя, есть варианты?
Viktor
У copy есть флаг --chown
George
не знаю
Roman
а зачем, если можно не делать?
Roman
У copy есть флаг --chown
спс, поизучаю
tolik8
как сделать конфигурацию докера, если база данных даже не не хосте, а на сервере в локальной сети?
George
не играет роли
Mentat
как сделать конфигурацию докера, если база данных даже не не хосте, а на сервере в локальной сети?
Докеру БД не нужна. Если она нужна приложению в докере - пиши ему хост или ип, и убедись что есть доступ с хост-машины докера
Gennady
Добрый день китики. может кто пояснить за то, что "под капотом" происходит? Если есть 3-4 контейнера, например БД, клиент, бекенд часть приложения. Каждый торчит куда-то в свой порт, может ли кто обьяснить, как идёт запрос от одного контейнера к другому? Тип, это проходит через какой-то слой?
Gennady
Торчит куда-то в свой порт в своей виртуальной подсети, где ходит к другим контейнерам по их именам
а кто конкретно ходит по именам? Какая часть докера за это отвечает?
George
а кто конкретно ходит по именам? Какая часть докера за это отвечает?
у докера есть свой днс, который он предоставляет запущенным контейнерам
Mentat
а кто конкретно ходит по именам? Какая часть докера за это отвечает?
Докер за это не отвечает. Ты запускаешь контейнеры, контейнеры - это упрощенные образы стандартных систем на линукс-ядре, вся работа ходить куда-то и резолвить куда - на их совести. Докер тебе дает изоляцию контейнеров, возможности сделать между ними общую сеть, и в том числе и дает свой днс-резолвер, через который и будет система в контейнере выяснять ip соседа
Gennady
аааааааааааааааа
Gennady
вот оно как
Gennady
спасибо большое
Попов
Привет всем, подскажите, есть сервисы в docker-compose - php, mysql, nginx, соответственно висит несколько разных доменов с сайтами и все замечательно, кроме одног, почта не уходит через функцию mail(), пытался прикрутить ssmtp и разные конфиги, в nginx делал fastcgi_param PHP_VALUE "sendmail_path=/usr/sbin/ssmtp -t -C /etc/ssmtp/ssmtp-mydomain.conf"; но эта фигня никак не хочет адекватно работать, кто с таким сталкивался? представим, что есть несколько разных доменов и виртуальных хостов соответственно, как почту отправлять с них по функции mail()? postfix прикручивать?
Попов
тогда не пойму как каждому виртуальному хосту задать свой реелй