George
Ты гит в докере держишь?
Anton
а причем тут пустая папка? А файлы в ней с какими правами будут создаваться?))
George
Вообще на это umask влияет
Evgeniy
Ты гит в докере держишь?
к изначальному вопросу вернутся стоило бы
Evgeniy
у чувака есть репозиторий и докер композ и там приложение хочет писать логи в ФАЙЛЫ
Evgeniy
правильней логи перенаправить на stdout и stderr
Evgeniy
если уж говоорить о правильном пути и не ебаться с установкой юзера
Evgeniy
то касается кэша, перенести его в контейнер с redis
Evgeniy
и все это вообще не вопросы докера, там на скрине symfony вроде
Anton
Ладно, мы гоняем из пустого в порожне. На линуксе права работают как и задумывалось, поэтому нужно следить за тем из-под какого UID PHP будет создавать файлы (если нужно иметь доступ к ним с хост машины). MacOS игнорирует эти права, там с хоста доступ к файлам, созданными контейнером, есть всегда, там можно ничего не делать. Спорить тут не о чем))
Anton
Помимо логов и кеша создаются и другие файлы. Те же фреймворки позволяют через CLI команды создавать файлы. Поэтому тактика с переносом всего и вся за пределы файловой системы - провальная
Evgeniy
мой опыт меня привел к пункту два из этого списка но я пробывал каждое из этих решений и указывал конкретные кейсы с которыми сталкивался как например что uid другой и там были какие то сложности с правами на маках, я только не помю какая именно версия докера была и как он там был
Anton
Ну а ебашить три топора на весь проект - это, простите, даже обсуждать не хочу
George
Не в bind mount
Evgeniy
Суй в вольюмы
не не проканает) по крайне мере у меня не получалось сделать это удобно)
George
Надо в файлы полазить - делай отдельный контейнер )
George
Или использовать всякие docker rsync (фууууу)
George
Но ты выбрал докер - страдай
Anton
та вон же Женя предлагает)
Evgeniy
в мире пхп есть всякие "помощники" которые генерируют шаблоны файлов и записывают их в дефолтные папки - фитча мягко говоря сомнительная, но в мире пхп распространена
Evgeniy
филосфия докера не писать в контейнер и ее надо стараться следовать
George
На локалке разраб может творить что угодно
Evgeniy
На локалке разраб может творить что угодно
об этом и речь когда я говорил chmod 777 может быть допустимым решением
Evgeniy
моими устами ...
Evgeniy
ну да ладно.
Evgeniy
просто я помню что году в 2018 была трабла на маках с юзером, так как в маках uid, gid по дефолту отличался от винды и linux приходилось выносить UID, GID в .env и если его не проставляли использовал 1000 как сейчас с этой проблемой в маках я понятие не имею, но сложность такая была и возможно она гуглится. в остальном вариант юзер вполне норм решение и его я упомянул самым первым и ссылку на доку скинул но правильней (по моему мнению) конкретно в том кейсе, сразу делать канонично, выносить логи в stdout, выносить кэши в редис, а для создания шаблонов файлов юзать ide, ну или запускать с указанием пользователя.
Dmitriy
docker compose используешь для поднятия контейнеров? В свойствах сервиса можно указать user и указать uid юзера из хост стистемы. Обычно это 1000, проверить можешь, выполнив id -u на хосте
спасибо! протестировал, помогло. Правда при u 1000 ошибка кеша исчезла, но появилась такая же проблема при апдейте библиотек через композер. В итоге запустил от u 0 и заработало
Пётр
Есть докер контейнер, я запускаю в нём скрипт, из крона через docker exec вопрос: куда перенаправлять вывод, чтобы видеть его в docker logs?
George
В /proc/1/fd/1
Сергей
Всем привет! Парни, не кидайтесь только тапками за тупой вопрос. Собрал композовский файл для запуска постгреса: # cat docker-compose.yml version: '3' services: database: image: 'postgres:latest' volumes: - /var/db/postgresql/db-data:/db-data - /var/logs/docker-compose:/pg-logs ports: - 5432:5432 environment: POSTGRES_USER: dba POSTGRES_PASSWORD: 'пароль не скажу' POSTGRES_DB: postgresdb PGDATA: /db-data PG_MODE: master При запуске и создании базы без указания локализации, создаются базы с английской локалью. postgresdb=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges ------------+-------+----------+------------+------------+------------------- postgres | dba | UTF8 | en_US.utf8 | en_US.utf8 | postgresdb | dba | UTF8 | en_US.utf8 | en_US.utf8 | template0 | dba | UTF8 | en_US.utf8 | en_US.utf8 | =c/dba + | | | | | dba=CTc/dba template1 | dba | UTF8 | en_US.utf8 | en_US.utf8 | =c/dba + | | | | | dba=CTc/dba test1 | dba | UTF8 | en_US.utf8 | en_US.utf8 | (5 rows) Попробовал указать DB_LOCALE: 'ru_RU.utf8' LANG: 'ru_RU.utf8' LANGUAGE: 'ru_RU.utf8' LC_COLLATE: 'ru_RU.utf8' LC_CTYPE: 'ru_RU.utf8' LC_TIME: 'ru_RU.utf8' LC_MONETARY: 'ru_RU.utf8' LC_MESSAGES: 'ru_RU.utf8' LC_PAPER: 'ru_RU.utf8' LC_NAME: 'ru_RU.utf8' LC_ADDRESS: 'ru_RU.utf8' LC_TELEPHONE: 'ru_RU.utf8' LC_MEASUREMENT: 'ru_RU.utf8' LC_IDENTIFICATION: 'ru_RU.utf8' LC_ALL: 'ru_RU.utf8' Но ругается, что таких локалей не найдено. Глянул через консоль, что вообще доступно: root@3176db8e3786:/# locale -a C C.UTF-8 en_US.utf8 POSIX root@3176db8e3786:/# Как то добавить русскую локаль можно? P.S. Не стреляйте в пианиста, докера тыкаю пальцем всего неделю, а композера увидел первый раз только вчера
Andrew
Всем привет! Парни, не кидайтесь только тапками за тупой вопрос. Собрал композовский файл для запуска постгреса: # cat docker-compose.yml version: '3' services: database: image: 'postgres:latest' volumes: - /var/db/postgresql/db-data:/db-data - /var/logs/docker-compose:/pg-logs ports: - 5432:5432 environment: POSTGRES_USER: dba POSTGRES_PASSWORD: 'пароль не скажу' POSTGRES_DB: postgresdb PGDATA: /db-data PG_MODE: master При запуске и создании базы без указания локализации, создаются базы с английской локалью. postgresdb=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges ------------+-------+----------+------------+------------+------------------- postgres | dba | UTF8 | en_US.utf8 | en_US.utf8 | postgresdb | dba | UTF8 | en_US.utf8 | en_US.utf8 | template0 | dba | UTF8 | en_US.utf8 | en_US.utf8 | =c/dba + | | | | | dba=CTc/dba template1 | dba | UTF8 | en_US.utf8 | en_US.utf8 | =c/dba + | | | | | dba=CTc/dba test1 | dba | UTF8 | en_US.utf8 | en_US.utf8 | (5 rows) Попробовал указать DB_LOCALE: 'ru_RU.utf8' LANG: 'ru_RU.utf8' LANGUAGE: 'ru_RU.utf8' LC_COLLATE: 'ru_RU.utf8' LC_CTYPE: 'ru_RU.utf8' LC_TIME: 'ru_RU.utf8' LC_MONETARY: 'ru_RU.utf8' LC_MESSAGES: 'ru_RU.utf8' LC_PAPER: 'ru_RU.utf8' LC_NAME: 'ru_RU.utf8' LC_ADDRESS: 'ru_RU.utf8' LC_TELEPHONE: 'ru_RU.utf8' LC_MEASUREMENT: 'ru_RU.utf8' LC_IDENTIFICATION: 'ru_RU.utf8' LC_ALL: 'ru_RU.utf8' Но ругается, что таких локалей не найдено. Глянул через консоль, что вообще доступно: root@3176db8e3786:/# locale -a C C.UTF-8 en_US.utf8 POSIX root@3176db8e3786:/# Как то добавить русскую локаль можно? P.S. Не стреляйте в пианиста, докера тыкаю пальцем всего неделю, а композера увидел первый раз только вчера
Всё есть в описании образа: секция Locale Customization
Сергей
СПАСИБО! 👍👍👍👍👌
Andrew
Если кратко, под свою локаль надо собирать свой кастомный образ и юзать его
Сергей
😕 Не хотел я идти этим путем. Ну да ладно. Спасибо еще раз!
Николай
😕 Не хотел я идти этим путем. Ну да ладно. Спасибо еще раз!
Я больше чем уверен, что так делать не стоит и это греховно, но все же… Делал докерфайл на основе постгресовского, а потом просто выполнялась череда команд на установку русской локали, ибо в контейнере в списке доступных её не было. locale-gen ru_RU.UTF-8 && \ sed -i -e 's/# ru_RU.UTF-8 UTF-8/ru_RU.UTF-8 UTF-8/' /etc/locale.gen && \ sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \ dpkg-reconfigure --frontend=noninteractive locales sed -i -e 's/# ru_RU.UTF-8 UTF-8/ru_RU.UTF-8 UTF-8/ ; s/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/ ' /etc/locale.gen localedef -i ru_RU -c -f UTF-8 -A /usr/share/locale/locale.alias ru_RU.UTF-8 CREATE DATABASE TEST_DB WITH OWNER = test_user ENCODING = 'UTF8' LC_COLLATE = 'ru_RU.utf8' LC_CTYPE = 'ru_RU.utf8';
Николай
Сейчас смотрю на это со стороны и выглядит страшно 😟 но когда-то такой способ помог
Andrew
Есть ещё варианты - Написать башскрипт с командой localedef и положить его в /docker-entrypoint-initdb.d (писать внимательно и идемпотентно) и сделать экспорт - пробросить нужный файл с host-системы (через volumes) и установить эту переменную через environments
Deni
Всем привет! Краткое предисловие: Работаю на windows 11, запускаю контейнер в докере для тестов Теперь вопрос: при попытке запустить скрипт в powershell скрипт запускается из директории mnt/host/c + путь до запускаемой папки локальной Ругается на отсутствие node и соответственно запуск невозможен Мои мысли, что я все равно запускаюсь в каком-то образе докера, хотя я его вырубил, как мне запускать мои исполняемые файлы из моей корневой директории в данном случае? То есть вопрос в том как отключить исполнение файла из образа
Kami
Всем привет, кто нибудь поднимал инструмент отчетности BIRT в докере?
Павел
Народ, я в докере могу слить что-то и запустить контейнер, поэтому нужна помощь. Есть несколько вопросов. первый это вот такая хрень
Павел
я помню раньше тут можно было выделять память и тд, как теперь это все настраивать. Я ниразу не devops и у меня винда
Павел
есть такой ответ https://stackoverflow.com/a/62773629/11926338 но где найти инструкцию как конфигурировать файл .wslconfig типо какие там возможные значения
Евгений
Привет. Может кто подсказать, как справится медленными запросами к бд через докер? В гугле пишут добавить volumes: - ./mysql/:/var/lib/mysql Но мне не помогло
George
Никак. В твоём случае надо сравнить с производительностью нативного мускуля на той же машине
George
Если разницы не будет - докер не виноват
Евгений
Разница есть
Евгений
На виртуалке все быстро грузится
Mr.
почему докер не удаляется?
Дмитрий
Здравствуйте. У меня вопрос по статике, есть картинке, которые я храню на сервере в папке dist-static-images. Как мне отдавать статику фронту? Стек next-nest TRAEFIK. Без докера все работает офк, но с докером не получется
George
George
Да
Тогда сравнивай конфиг файлы
George
Они могут отличаться при установке на хост и в докер. Плюс попробуй контейнер в host network mode запустить - мало ли сетевой стек докера тормозит, так ты сможешь его исключить
Mr.
Попробую позже. Спасибо
C:\Program Files\Docker\Docker>docker info Client: Context: default Debug Mode: false Plugins: buildx: Docker Buildx (Docker Inc., v0.8.2) compose: Docker Compose (Docker Inc., v2.6.0) sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc., 0.6.0) scan: Docker Scan (Docker Inc., v0.17.0) Server: ERROR: error during connect: This error may indicate that the docker daemon is not running.: Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/info": open //./pipe/docker_engine: The system cannot find the file specified. errors pretty printing info
Mr.
Как это исправить?
Mr.
Mr.
Mr.
Mr.
Mr.
Mr.
И как догнать , почему докер не работает)?
Artyom
И как догнать , почему докер не работает)?
В обычной cmd набери: wsl -l -v И смотри
Artyom
Скорее всего виртуалка докера не поднята
Artyom
Демон докера не запущен
Artyom
Это причина, по которой ничего не работает
Mr.
А как его запустить?
Mr.
Демон
Artyom
А как его запустить?
В Docker Desktop нажми там в настройках, чтоб сбросить их
Artyom
Вдруг сработает
Mr.