kSandr
по хорошему если тебе нужно обновить код, то ты просто пересобираешь новый контейнер и выкатываешь его на прод
tfhx8
dev
Приветствую
При запуске build, такая ошибка:
w@w1:~/docker/wa1$ time docker build -t wa1 .
Step 5/10 : RUN apt-get -qqy update && apt-get -qqy --no-install-recommends install -y python3 python3-pip ffmpeg wget unzip
---> Running in ccec61ad817b
AppArmor enabled on system but the docker-default profile could not be loaded: running `/sbin/apparmor_parser apparmor_parser -Kr /home/docker/tmp/docker-default061573499` failed with output: AppArmor parser error for /home/docker/tmp/docker-default061573499 in /etc/apparmor.d/tunables/global at line 15: Could not open 'tunables/home'
аппармор при этом выключен:
w@w1:~/docker/wa1$ sudo systemctl status apparmor
● apparmor.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead)
как это можно исправить?
George
Понимаешь разницу между отключен и не запущен ?
George
Тебе либо надо как-то докеровский профиль доустановить
George
Либо аппармор окончательно выпилить
George
Может, в настройках докер демона пошаманить. Фиг знает.
George
Докер как устанавливал ? Убунту 18 ?
Monch
Здравствуйте!
Устанавливаю appdaemon, вот так:
docker run --name=appdaemon -d -p 5050:5050 \
--restart=always \
-e cert_verify="Flase"\
-e dash_url="http://192.168.XX.XX:5050"\
-e HA_URL="http://192.168.xx.xx:8123" \
-e TOKEN="<ваш TOKEN который получили в HA>" \
-v /home/docker/appdaemon:/conf \
acockburn/appdaemon:latestчто здесь нужно дописать, чтобы appdaemon использовало не UTC, а local time ("Europe/Moscow")?
George
Monch
George
dev
"оно", это демон докера? то есть он не смотрит запущен аппармор или нет, а просто на установлен/нет?
George
ну, а ты как думаешь?
George
ты внес какие-то изменения в систему (=ручками отключил аппармор), а остальным компонентам об этом не сообщил (=не настроил докер на то, что аппармора нет)
George
а потом удивляешься, что оно не работает
George
🤷♂️
dev
ну почему же не сообщил?
я отключал через systemctl
dev
ну это не суть уже)
другой вопрос - вот срочки из докерфайла
RUN useradd -ms /bin/bash wa
USER wa
WORKDIR /home/wa
COPY fs/wa/ /home/wa/
почему после создания докера у файлов в /home/wa владелец root? и как это правильнее починить
dev
сделал втупую вот так
не уверен, что это идеологически правильно, но должно сработать
RUN chown -R wa:wa /home/wa
George
Alexey
всем привет. У меня ситуация, когда я сделал маунт каталога в контейнер и когда приложение создает какой-то файл, то он с создается под овнером рут. Контейнер запущен из под обычного юзера.
Как я понимаю, мне нужно при создании образа в докерфайл указать директиву user. Вопрос - как это правильно сделать? Пользователь юзер уже есть на хосте, как его слинковать с этой директивой? UID передать
user uid:gid?
George
все сложно и зависит от образа
Alexey
образ - голый рантайм дотнета + запакованый туда код
George
https://habr.com/ru/post/465193/#comment_20562785
George
вот сюда смотрите. Вообще если нет никаких файлов внутри образа, кроме исполняемых, то достаточно передать флаг docker run --user
George
типа
George
docker run --user $(id -u)
Alexey
а в dockerfile директива user тогда не нужна будет?
Alexey
кстати, в образе там еще и статика всякая, не только исполняемые. Я сделал publish приложения и результат закинул в образ
George
George
George
но могут быть нюансы
Alexey
спасибо большое. А там ребята пишут, что можно создавать юзера в контейнере с id юзера из хоста. в таком случае тоже проблем не будет?
George
George
если у тебя все остальное написано переносимо )
Alexey
а чтобы на старте контейнера создать пользователя, мне нужно в образ закинуть скрипт, потом аргументом передавать ID при создании контейнера?
Если да, то мне нужно два entrypoint использовать?
George
George
просто работать под айди.. Проблема в том, что некоторые утилиты и библиотеки требуют, чтобы была запись в /etc/passwd файле
George
т.е. юзера лучше создать
George
да, скрипт в энтрипойнт
George
> Если да, то мне нужно два entrypoint использовать?
энтрипойнт может быть только оидн
George
но в нем можно сделать хитрую штуку типа exec $@
George
которая выполнит то что будет справа аргументами от энтрипойнта (т.е. это не портит использование command)
Alexey
Немного не понял, как это выглядить должно в dockerfile
Alexey
у меня entrypoint требует аргументов, т.к. я запускаю donet потом аргумент откуда брать исполняемый файл. В таком случае, куда вставить exec $@?
Andrey
George
George
https://github.com/puckel/docker-airflow/blob/master/script/entrypoint.sh#L95
George
типа так
Alexey
@gecube спасибо!
RE
камрады, а есть ли возможность при docker stack deploy запустить сервис, который должен выполнится только один раз и выйти без перезагрузки?
а то он рестартует постоянно, чего не хочется, чтобы происходило..
Max xbim 🌴
Если параметры сервиса не меняются то stack deploy не вызывает перегрузку
𝑰𝒍𝒉𝒐𝒎
Еще раз привет. Я начинающий пользователь docker.
Хотел спросить, какой самый лучшый вариант для selenium + mocha ?
Как конечный пользователь сможет запускать тесты?
George
𝑰𝒍𝒉𝒐𝒎
Oleksandr
при docker-compose up показывается debug инфа. как её убрать?
*никаких параметров не добавляю
Kana
Kana
Правда режим detached будет
rmshell
Привет! Кто подскажет, как достучатся до постгреса на хосте из контейнера?
Roman
kSandr
kSandr
ага, тип того
kSandr
либо по внутреннему айпишнику докера который типа 172.17... можно, либо по внешнему, .... ну и на крайний случай —net host контейнеру
George
по бриджованному адресу
NM
+ route на других машинках не забудь
rmshell
kSandr
𝑰𝒍𝒉𝒐𝒎
Привет.
Запустил первый контейнер с selenium - открываю порт 4444 с хоста, все ок
Запустил второй контейнер с mocha. api тесты работают, а вот при браузерных тестах mocha не видит 127.0.0.1:4444
Как решить эту проблему? куда копать?
Roman
George
George
и в одну вирт сеть их объединить, если можно и ходить по имени контейнера - selenium:4444
George
127.0.0.1:4444 не работает и не должен
Anonymous
Всем привет) Возможно у меня очень тупой и частый вопроc… Но все же, как мне локально обратиться к базе (pgSql), если собирал через docker-compose up ?)
Roman