Alexey
Рафаэль ᕕ( ᐛ )ᕗ
docker exec docker_postgres_1 sh
Andrey
а docker system prune -a все образы удалил? После него docker image ls показывал что-нибудь?
Alexey
docker exec docker_postgres_1 sh
и что это должно дать?
Andrey
ну хер знает тогда, выкини этот композе на помойку и не используй его для сборки
Рафаэль ᕕ( ᐛ )ᕗ
уже можно не замазывать, в общем-то
Alexey
и почему первая команда копирования выполняется, а вторая - нет?
George
а как контейнеры между собой дружить?
тебе вполне четко сказали - не используй компоуз ДЛЯ СБОРКИ
George
запускать - запускай, если хочется
George
напиши мейкфайл, внутри docker build
George
используя docker-compose up —build ты теряешь контроль над процессом
George
т.е. это типа как бы удобно, а по факту - ты не первый, у кого что-то не так закэшировались и все сломалось
Alexey
а нет какой-то магической команды кэш этот почистить или обнулить?
Andrey
Не используй таг latest, меняй при каждом ожидаемом изменении образа.
Andrey
Поможет 100%
p
всем привет! знаю, что идиотский вопрос, но пол дня мучаюсь и гугл не помогает... docker pull mongo:latest docker run -p 27017:27017 mongo не могу подключиться к базе после этого ip использую этот: "IPAddress": "172.17.0.2" это из docker inspect что делаю не так?
ranebull
Тот IP, который вы пытаетесь использовать - изолированная сеть Docker
p
Тот IP, который вы пытаетесь использовать - изолированная сеть Docker
ох, спасибо! помогло! пробовал локалхост сразу, но тогда с портами путаница была
Andrii
ребят, подскажите в какую сторону копать - уже кучу перебровал - нужна сборка - PHP7.3 (можно и 7.2) - nginx - mysql - redis (не обязательно) для дева
Hopf
В сторону написания докерфайла?
simplemice.eth
ну, можно начать с докер-компоса :)
ranebull
ребят, подскажите в какую сторону копать - уже кучу перебровал - нужна сборка - PHP7.3 (можно и 7.2) - nginx - mysql - redis (не обязательно) для дева
Я, думаю, понятно, что это должно быть не в одном контейнере. Как сказали ниже - можно просто взять docker-compose и написать туда 4 сервиса
Levan (Leo)
Не могу запустить постгри
Levan (Leo)
Хотя вырубаю вроде докер
George
Не могу запустить постгри
netstat -tlpn на хост машине запусти. Может ты постгрес установил в основную систему...
Levan (Leo)
Не / в докер
Levan (Leo)
Я уже запускал
Levan (Leo)
Но ща не хочет
Levan (Leo)
(
.
Не могу запустить постгри
глянь что за процесс занял порт
Kana
Ребят подскажите у меня есть контейнер с nginx и контейнер с пхп. Будет ли норм идеей в пхп контейнере поставить 777 на файлы и папки или чем это чревато?
Kana
Чот не могу нормально дать права на папки nginx контейнеру
Kana
@smilingnavern
Kana
Как думаешь?
Navern
Что ты пытаешься сделать?
Kana
У меня есть контейнер nginx в который стучатся запросы. И контейнер пхп. При отправке запросов выходит ошибка, что нет доступа к файлам.
Kana
File permissions error
Kana
@smilingnavern
Navern
У меня есть контейнер nginx в который стучатся запросы. И контейнер пхп. При отправке запросов выходит ошибка, что нет доступа к файлам.
Это ничего не говорит мне. У тебя какие то общие файлы которые должен отдавать nginx и php? вряд ли как мне кажется
Kana
Пхп пишет логи
Kana
Логи приложения
Navern
Ну так сделай имадж так чтобы он писал в стдаут
Kana
У ларавела в папке storage хранятся логи. Он ща не может их создать изза прав
Kana
Ну так сделай имадж так чтобы он писал в стдаут
Так ларавел не будет туда писать логи.
Kana
@smilingnavern я короч выяснил id пользователя в контейнере и дал ему права на хосте. Но чот напрягает что приходится это делать, получается всем кто проект качнет придётся то же самое делать
Navern
Если ты мапишь с хоста файлики
George
там с этим есть проблемы
George
т.к. стандартный образ не делает chown на файлы ВНУТРИ контейнера. Результат - пермишен денайды уже на содержимое контейнера
Navern
Но да это все костыли и хрупкие причнм
George
даже не говори
George
FROM nginx:1.15.12-alpine RUN apk add --no-cache tzdata shadow ENV TZ Europe/Moscow RUN usermod -u 1000 nginx && \ touch /var/run/nginx.pid && \ chown -R nginx:nginx /var/run/nginx.pid && \ chown -R nginx:nginx /var/cache/nginx && \ chown -R nginx:nginx /var/log/nginx && \ rm /var/log/nginx/access.log && \ rm /var/log/nginx/error.log USER nginx RUN touch /var/log/nginx/access.log && \ touch /var/log/nginx/error.log
George
вот например штука, которая запускает nginx от пользователя 1000 (обычно тот же юзер, что и на хосте - первый непривилегированный)
George
вообще стыдно людям такое показывать, ога
Evgeniy
что то не удается сделать вывод из задач крона в логер докера dockerfile https://pastebin.com/RWGCLUhV crontab https://pastebin.com/EDzAFWrL файлы /magic и /test заполняются логами запуска, а вот вывода в docker-compose logs cron нету может кто знает в чем причина?
George
очевидно. Потому что ты делаешь бред.
George
но если очень хочется использовать крон, то я запретить не могу (
Evgeniy
я знаю что крон это плохо в докерах но есть проект где надо выполнять периодически команды, какие решения для этого есть ?
Evgeniy
очевидно. Потому что ты делаешь бред.
в чем именно заключается очевидность что команда echo "magic" >> /dev/stdout не выводится в логе ? убирая крон из списка
George
я знаю что крон это плохо в докерах но есть проект где надо выполнять периодически команды, какие решения для этого есть ?
5 решений. 1. крон на хосте - в задачу впихиваешь docker exec blablabla (blablabla - твоя команда в твоем контейнере) 2. systemd-timer на хосте (полный аналог крона) 3. написать свой движок - в любом языке программирования есть таймеры, заодно как бонус сможешь выполнять таски не каждую минуту, а хоть каждую секунду 4. если есть внешняя система оркестрации или деплой - можно через него (от нищеты мы часть задач по обсчету раз в сутки запускали через расписание в гитлабе) 5. идеально - куберенетосовский кронджоб (если есть куб)
George
касательно вывода в stderr - я еще подумаю, что можно сделать
Evgeniy
надо писать в /proc/1/fd/0|1
George
выглядит как костыли все равно
Evgeniy
потому что /dev/stdout symliny на /proc/self/fd/0 а self это симлинк на 876 в моем текущем запуске
Evgeniy
а надо слать на 1 pid
Evgeniy
по другим пунктам делать это на хосте это еще хуже докер это инструмент по запуску процессов в одинаковом окружение, cron - такой же процесс просто написан очень давно и неудобство запуска крона связано с тем что нормально докер от конфигурить мало человек может
George
ну, здесь тебе самому надо решить, что является для тебя куском окружения 😊
George
я тебе более того скажу - докер нИ НУЖЕН
Evgeniy
я же не просто крон пускаю