Andrey
λesha
Привет всем! Полез тут грязыми манагерскими руками ковырятся в этих ваших линуксах и прибил процесс, который был запущен из под докера. Осознав ошибку убил контейнер и перезапустил. Однако после этого перестал экспоузиться порт из этого контейнера. Пробую подключиться телнетом, получаю "Connection closed by foreign host." Как это можео полечить? Машину перезапускать пробовал, сносить и устанавливать докер заново тоже пробовал. Система Debian Jessie, Docker version 17.06.0-ce, build 02c1d87.
λesha
Не прод.
λesha
В общем сделал docker ps -a. Оказалось что тот контейнер все еще каким-то образом учитывается (буду благодарен за объяснение). Сделал docker rm для него и все заработало.
λesha
И почему докер разрешил запускать новый контейнер с тем же именем.
Aleksand
Да
ну статус у него после завершения процессов внутри "exited", после остановки он меняет состояние а не удаляется автоматом
Aleksand
порты при этом он не держит никакие
Aleksand
И почему докер разрешил запускать новый контейнер с тем же именем.
видимо не с тем же вот тут можно поглядеть про статусы контейнеров https://github.com/moby/moby/blob/b44b5bbc8ba48f50343602a21e7d44c017c1e23d/container/state.go#L41
Pavel
Бан плиз
λesha
Для авто удаления есть ключ --rm при поднятии
О, спасибо! А то я делаю каждый раз docker stop ... || true && docker rm ... || true :)
Sun
но в макос есть лимит, после которого OOM прибьет контейнер
А можно вот на этом месте по-подробнее? Просто у меня вчера тестовая среда сенсу через два часа повалилась и я не понял почему
Sun
Редис, и три ящика с сервисами
Sun
Сначала редис получил sigterm, а за ним каскадом легли остальные
Sun
От кого он его получил, я так и не понял
twwlf
Возможно, макось убила процесс виртуалки
Sun
Ну, с виртуалбоксом и параллелсом она так себя не ведёт.
twwlf
Ну так там наверняка гипервизор за этим следит
Serg
Всем привет! Подскажите , кто знает. Имею gitlab ci с registry и ранером. Все на одной машине. При пуле\пуше в registry образы ходят через интернет. Как сделать так, что бы для этого использовался localhost?
Александр
Как можно провайдить ENV переменные в Dockerfile через docker-compose Пробую использовать такой формат serviceA: build: context: . dockerfile: DevDockerfile args: HOST_IP: docker.for.mac.localhost А внутри обращаться к переменной как к ${HOST_IP} Но она не видится таким образом. Запускаю все просто через docker-compose up
Александр
При сборке имею ошибку вида [Warning] One or more build-args [HOST_IP] were not consumed
Александр
docker v 17.0.6
Александр
Это делал
Artem
и?
Александр
Не передаются через args в Docekrfile переменные
Александр
с ENV все хорошо через env_file: [.env] или environment: -...
Artem
аа, в в докерфайл, я то про сам компоуз
Александр
Сам композ хорошо видит env
Александр
А вот при build Dockerfile не видит переменные, которые я через args настройку пытаюсь провайдить
Александр
https://docs.docker.com/compose/compose-file/compose-file-v2/#args
Александр
Вот по этому ману
Aleksand
Для авто удаления есть ключ --rm при поднятии
да, только при его использовании нередко натыкаешься на Conflict. The container name "xxx" is already in use by container, не сразу доходит что этот ключ удаляет только за собой.
Artem
заливать в регистри не через сам регистри будет еще более костыльно
Artem
он удаляет только тот контейнер к которому был применен ключ после его остановки
Serg
заливать в регистри не через сам регистри будет еще более костыльно
Согласен. В конфиге нашел строчку gitlab_rails['registry_api_url'] = "http://localhost:5000" В доках о ней ничего нет. Может оно?
Boris 🦍
ПРивет, подскажите. почему после рестарта контейнера изменения в конфиге не сбрасываются на те, что были при сборке образа? я думал, что должно так происходить, конфиг и директория не смаплены в хост
Artem
не посре рестарта, а после пересоздания
Artem
Образ надо пересоздать, а после запускать контейнер уже из нового образа
Какой образ, зачем новый образ? Образ остается тот же, просто пересоздать контейнер.
Dmitriy
Вижу! Не так понял. Но по вопросу отвечу - stop и start не сбрасывают изменения до состояния на момент создания контейнера. Пока контейнер жив, сколь угодно можно делать stop и start и данные внутри можно изменять!
🦠
Тихо буть)
Konstantin
Так в доке же описано как передавать и ENV и ARGS
Artem
через docker stack deploy указывая компоуз файл можно указать конкретный сервис который запустить или только весь стак можно опустить/поднять?
Александр
Ну так не работает через args
Александр
serviceA: build: context: . dockerfile: DevDockerfile args: HOST_IP: docker.for.mac.localhost
Александр
В dockerfile пишу ${HOST_IP} или $HOST_IP и не видится там значение
Александр
Все по доке делаю https://docs.docker.com/compose/compose-file/compose-file-v2/#args
Aleksand
Aleksand
ARG HOST_IP
Aleksand
тогда должна быть видна
Александр
Пробовал в FROM версию прокинуть, пробовал в блок && echo "xdebug.remote_host=docker.for.mac.localhost" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ прокинуть
Александр
FROM php:7.1-fpm RUN pecl install xdebug \ && docker-php-ext-install -j$(nproc) mysqli pdo pdo_mysql \ && docker-php-ext-enable xdebug \ && echo "xdebug.remote_enable=1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ && echo "xdebug.remote_autostart=1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ && echo "xdebug.remote_host=docker.for.mac.localhost" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ && echo "xdebug.remote_port=9000" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
Александр
Версию базовго image и xdebug.remote_host заменять пытаюсь
Aleksand
Александр
FROM php:${BASE_IMAGE_VERSION} echo "xdebug.remote_host=${HOST_IP}" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
Александр
Вот так вот делал
Aleksand
Версию базовго image и xdebug.remote_host заменять пытаюсь
FROM php:7.1-fpm ARG HOST_IP ... после этого доступно $HOST_IP
Aleksand
передать аргументы мало, их надо еще принять
Александр
Александр
Ссылку дал выше, доку к compose смотрел
Александр
в блое args передал
Aleksand
ну он передавал все правильно, по доке
Aleksand
в блое args передал
First, specify the arguments in your Dockerfile: только с начала доку читай)
Александр
Ну переходить на более низкий уровень не хочется никому никогда, если на высоком кажется все понятным
Aleksand
да
Александр
а там ньюансы свои
Александр
Это пример как бы без композа это выглядит
Aleksand
там все явно, просто внимательнее смотри
Александр
Доку есть куда улучшать ) Думаю, я не первый наступил
Aleksand
ну не гони так сразу, заблудился человек в доке, бывает