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
Alexey
simplemice.eth
docker logs
Alexey
Vladimir
Vladimir
Тогда да, dicker logs в помощь
AF
логи наше все) всем спасибо
AF
initdb: directory "/var/lib/postgresql/data" exists but is not empty
Maxim
Подскажите новичку, как правильно организовать разделение на окружения? есть разработчики - им нужны дэбагеры и какие-то профилировщики, есть тестовое окружение и в тестовом не должно быть дэбагеров и профилировщиков и тестовое окружение один в один как production окружение, отличается только доменом от production окружения. Домены победил с помощью переменных окружения, но как быть с дэбагерами для разработчиков и возможностью редактировать код - запутался. Может кто нибудь уже сталкивался с проблемой и знает решение? Буду признателен. В документации не нашел рекомендаций, но может невнимательно читал.
George
George
George
FROM base as my_base
....
FROM my_base as debug
RUN установить дебаггеры
FROM my_base as test
RUN установить тестовые утилиты
George
Можно одним чохом их собирать. Ну, и честно говоря, я не очень уверен, что реально дебаггеры и тест кейсы должны быть в том же образе
Vladimir
Maxim
Vladimir
php, node.js, java, python
Уточни, сначало как запускаются и что для них нужно.
На php, многие фраемворки поддерживают разделение на прод и stage из коробки
Maxim
Уточни, сначало как запускаются и что для них нужно.
На php, многие фраемворки поддерживают разделение на прод и stage из коробки
Например php, как некомпилируемый и на мой взгляд с ним проще чем с компилируемым, но не пойму как именно. Фрэймворк yii2. Для дэбага необходим xdebug модуль php, должен быть установлен в образ для разработчика, как я понял код нужно монтировать в образ, а для тестового и прода нужно код переписывать в образ для доставки на сервера и не должно быть при этом xdebug. И вот запутался как правильно сделать, два образа - это было первое решение, но планируется сервисов больше чем 4 и тогда - тушите свет, как рулить таким зоопарком образов docker
Vladimir
Вот, примерная концепт, того про что я говорил
Vladimir
George
Например php, как некомпилируемый и на мой взгляд с ним проще чем с компилируемым, но не пойму как именно. Фрэймворк yii2. Для дэбага необходим xdebug модуль php, должен быть установлен в образ для разработчика, как я понял код нужно монтировать в образ, а для тестового и прода нужно код переписывать в образ для доставки на сервера и не должно быть при этом xdebug. И вот запутался как правильно сделать, два образа - это было первое решение, но планируется сервисов больше чем 4 и тогда - тушите свет, как рулить таким зоопарком образов docker
Ну, вариантов концептуально два:
1. Образ один и тот же, но разные конфигурационные настройки
2. Образы разные.
Ещё накину. Все файлы кода должны быть внутри образа. Это сильно упрощает доставку. Т.к. в противном случае нужно доставлять три сущности:
1. Образы контейнеров
2. Докер компоуз или любое описание конфигурации контейнеров
3. Код
Я же предлагаю обойтись 1+2.
Далее. Код в вольюме - это удобно для разработки, т.к. позволяет оперативно вносить изменения. Для компилируемых языков и пайтона есть вообще хотрелоад при изменении кода
George
Но в проде - все изменения через регламентную процедуру в виде заливки обновленных образов. Что ещё сказать...
George
А, если наживую меняете код внутри запущенного контейнера, то изменения живут до пересоздания контейнера. Т.е. docker stop ОЧЕВИДНО не обнуляет эфемерную файловую систему контейнера :-) но для многих этот момент неясен
Vladimir
Maxim
https://serversforhackers.com/c/disable-in-prod
Для php это прям то что нужно, спасибо! В итоге для некомпилируемых типа php с дэбагером можно просто не загружать дэбагер, это отличное решение! Один образ для всех окружений, ура!
Maxim
Осталось с компилируемыми разобраться
Михаил
Всем ку, поделитесь опытом юзеры win10, как вы используете докер? У кого-то тулбокс работает корректно?
Vladimir
Maxim
Все дело, в том что нужно для дебага
node.js вроде нужно собрать приложение с ключем development и тогда он будет использовать web socket для дэбага в chrome dev tools, для java необходимо что то подобное но разработчики еще не скинули описание, скорее всего пришлют скриншоты из Intellij или подобной ide, для python вроде так же как для php, но не уверен, разработчики подключатся только через неделю но думаю что раз нет необходимости компилировать то подход наверняка такой же как с php
a1eXei
Михаил
a1eXei
Тулбоксом не пользовался
Vladimir
Vladimir
Vladimir
И решается, ключами java и как следствие, так же, через etrypoint скрипт
Anonymous
Maxim
Благодарю за подсказки, очень выручили!
Max
Всем привет.
Max
Есть задача: опубликовать пул портов. Т.е. docker run -p 100-200:80 ... Как-то так. Это возможно?
George
Привет. Здесь можно сразу задавать вопрос, без прелюдий
George
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
stempher
George
не знаю
Roman
а зачем, если можно не делать?
Roman
tolik8
как сделать конфигурацию докера, если база данных даже не не хосте, а на сервере в локальной сети?
George
не играет роли
Gennady
Добрый день китики.
может кто пояснить за то, что "под капотом" происходит?
Если есть 3-4 контейнера, например БД, клиент, бекенд часть приложения.
Каждый торчит куда-то в свой порт, может ли кто обьяснить, как идёт запрос от одного контейнера к другому? Тип, это проходит через какой-то слой?
Mentat
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 прикручивать?
NM
Привет всем, подскажите, есть сервисы в 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 прикручивать?
Ну элементарно транспорт и relay потому же есть до мира ?
Попов
Попов
тогда не пойму как каждому виртуальному хосту задать свой реелй