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
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
а в чем проблема с документацией?)
Ruslan
всем привет, я новичек. ПОэтому нужна помощь. У меня
показывает выключенные состояния. Я бы хотел их почистить и увидеть только running state. Варианты:
docker stack ps getstartedlab | grep "Running"
или
docker stack ps -f "desired-state=running" getstartedlab
не подходят
Ruslan
Ruslan
неа. я хочу почистить их
Ruslan
я может чего не понимаю, но мне хотелось бы видеть только running, а ошибки затереть
Sergey
почистить состояния? шта
Ruslan
Je
Sergey
я такого не знаю
почистить лишние образа\контейнеры\сети\тома да
Boris
Всем привет!
Подскажите с проблемой?
Расшарил nginx контейнеру директорию для статичных файлов, но при попытке считывания - failed (13: Permission denied)
Sergey
chown nginx:nginx /var/www/html/site?
Ruslan
Ruslan
не помогло
Je
помогло, это история просто
Sergey
а чем доки не помогают я не пойму
если в доках нет вряд ли тут кто знает команду
Ruslan
Boris
Я это понял - я имею в виду моя монтированная директория пустая
Je
Ruslan