Denis
но хочу сделать так, что бы папка создавалсь контейнером с id -u хостового юзера
Denis
тогда не нужен будет костыль с chmod
Konstantin
Всем привет! Такой вопрос: есть контейнер, стартующий через docker compose, у которого в качестве entrypoint shell-скрипт. В скрипте прописан hostname связанного через links контейнера. При старте (связанный запускается без проблем и работает) shell-скрипт пишет о том, что не может найти hostname связанного контейнера. В /etc/hosts видно, что, действительно, нет hostname там. Но если вместо hostname в shell-скрипте указать IP, то всё запускается, а в /etc/hosts всё становится прописано верно. Как тут лучше поступить, чтобы использовать hostname? И почему /etc/hosts формируется после старта контейнера, а не до?
Sergey
пробуйте писать в хосты в контейнер раньше чем он стартенет и ребилдите
Konstantin
Писать в hosts не дает - "resource busy" пишет. Через extra_hosts тоже не получается
Sergey
а они в одной сети?
Sergey
ну docker-netwrok
Konstantin
Да, более того я статично задал сейчас IP, чтобы работало. То есть hostname не использую
Sergey
странно, я может не понимаю всей ситуации, если я в конфиге одного сервиса указываю обращение по JDBC к dns:port другого сервиса проблем не возникает
Sergey
может все таки на k8s+kubedns перейдете и проблема решится сама собой)
Konstantin
Да. Есть такие планы. В процессе изучения ещё )) А пока приходится docker compose использовать
Sergey
а кто резолвит адреса
Sergey
у них поди локалхост в резолве стоит вот они и не знаю у кого имя спрашивать
Sergey
локалхост то бишь докер сам себя спрашивает как подключиться туда чье имя он не знает
Konstantin
version: '3' services: worker2: image: worker_v1 container_name: worker2 depends_on: - app links: - app:app restart: always networks: - apps worker1: image: worker_v1 container_name: worker1 depends_on: - app links: - app:app restart: always networks: - apps app: image: app_v1 container_name: app restart: always networks: apps: aliases: - app ipv4_address: 172.88.0.2 networks: apps: driver: bridge ipam: driver: default config: - subnet: 172.88.0.0/24
Konstantin
у worker1 при запуске используется скрипт, в котором прописано обращение к хостнейму app через curl
Konstantin
worker не может запуститься без этого хостнейма
Konstantin
если хостнейм поменять на IP
Konstantin
то worker запустится и будет резолить app нормально
Sergey
я грю кто резолвит ваши имена то
Sergey
/etc/resolv.conf че написано? локалхост?
Konstantin
внутри контейнера вот так
Konstantin
nameserver 127.0.0.11 options ndots:0
Sergey
т.е вы пытаетесь обращаться по имени когда ни один хост не знает имен кроме самого себя
Sergey
они в одной сети но никто не резолвит
Konstantin
Получается, что так. Я предполагал, что он смотрит /etc/hosts, где к моменту запуска контейнера всё прописано. Но по факту - ещё нет
Sergey
вы до того как контейнер запустится запишите на первых слоях туда инфу
Sergey
ребилдите и запустите
Sergey
или на первых этапах шелла
Konstantin
ОК, благодарю! Попробую так. Просто я предполагал, что links это сделает за меня.. )
Sergey
echo 'name 172.88.0.1'»/etc/hosts
Konstantin
Да, это понятно. Спасибо
Roman
запускаю симфони с под докера. после команды php bin/console cache:clearполучаю Warning: file_put_contents(/code/var/cache/dev/appDevDebugProjectContainerDeprecations.log): failed to open stream: Permission denied приходится плстоянно делать sudo chmod -R 777 ./code/var/с чем ето может быть связано? Спасибо!
Sergey
а том не прокинут случаем на хост куда прав нет
Roman
не понял
Sergey
том на хост из этой директории не прокинут?
Roman
что такое том?
Sergey
volumes: - /mnt/services/prometheus:/prometheus - /mnt/services/prometheus/etc/:/etc/prometheus
Roman
volumes: - ./code:/code у меня такая структура папок и site.conf root /code/web;
Sergey
права на /code какие и там и там
Roman
drwxrwxr-x 11 user user 4096 июн 15 15:02 code
Roman
нужно наверно site.conf правильно настроить((
Sergey
я думаю у вас прав нет на /code
Roman
щас дам, и гляну. спс
Diman
Привет. Я задаю кастомный DNS cервер через Daemon DNS options. Встроенный DNS по-прежнему должен работать? Разрешение имен в docker-compose?
Roman
я думаю у вас прав нет на /code
а как их посавить в докере?
Sergey
у вас либо хостовая машина права другие имеет либо приложению нужны конкретные пожно создать юзера приложения и выставить его владельцем папки
Sergey
ENV JAVA_VERSION 1.8.0 ENV ES_HOME /usr/share/elasticsearch #Before install elasticsearch, need to install a repo first COPY elastic.repo /etc/yum.repos.d/ RUN yum -y install sudo java-${JAVA_VERSION}-openjdk initscripts \ telnet \ curl #Install Elasticsearch RUN sudo yum -y install elasticsearch && yum -y clean all RUN sudo chkconfig --add elasticsearch RUN usermod -aG wheel elasticsearch && chown elasticsearch: $ES_HOME VOLUME /usr/share/elasticsearch/data
Sergey
тип так
Roman
спасибо. буду расбиратся
ikasymov
Привет
ikasymov
дле чего volumes в docker-compose можете обьяснить?
Bohdan
гугли named volumes
ikasymov
пример volumes: - ./myswebsite:/another_directory что он сделает если коротко?
Bohdan
а, ты даже про эти....
Bohdan
а в чем проблема с документацией?)
ikasymov
а в чем проблема с документацией?)
четко не понимаю, пару пердложений ускорило бы процесс в разы
Ruslan
всем привет, я новичек. ПОэтому нужна помощь. У меня показывает выключенные состояния. Я бы хотел их почистить и увидеть только running state. Варианты: docker stack ps getstartedlab | grep "Running" или docker stack ps -f "desired-state=running" getstartedlab не подходят
Bohdan
четко не понимаю, пару пердложений ускорило бы процесс в разы
"отобразит" папку из контейнера на папку на хосте первая папка (до двоеточия) - хост, вторая - контейнер
Ruslan
неа. я хочу почистить их
Ruslan
я может чего не понимаю, но мне хотелось бы видеть только running, а ошибки затереть
Sergey
почистить состояния? шта
Ruslan
почистить состояния? шта
почистить ошибки
Sergey
я такого не знаю почистить лишние образа\контейнеры\сети\тома да
Boris
Всем привет! Подскажите с проблемой? Расшарил nginx контейнеру директорию для статичных файлов, но при попытке считывания - failed (13: Permission denied)
Sergey
chown nginx:nginx /var/www/html/site?
Ruslan
не помогло
Je
помогло, это история просто
Sergey
а чем доки не помогают я не пойму если в доках нет вряд ли тут кто знает команду
Boris
chown nginx:nginx /var/www/html/site?
Хм, зайдя в контейнер - вообще вижу что пустая директория, возможно проблема в этом?
Sergey
Хм, зайдя в контейнер - вообще вижу что пустая директория, возможно проблема в этом?
не не не, я грю о пути к вашей статике это по дефолту там в debian nginx сайты хранит я для примера указал
Boris
Я это понял - я имею в виду моя монтированная директория пустая
Je
помогает, когда я удаляю стек и снова деплою
ограничь вывод истории, если тебя пугает
Je
это как? В конфигах
google: docker stack ps limit history
Ruslan
google: docker stack ps limit history
первая ссылка и сразу в точку. Спасибо)