Cin
Если я правильно понимаю что ты хочешь
Alexey
сделай Dockerfile FROM:php-fpm:alpine ...... и в docker-compose укажи его
Сейчас так и есть. В докер файле описано все модули, и либы которыеы должны использоваться. Но как я понял папка не будет доступна до запуска
Alexey
Разве RUN скрипт пройдет? И правильно-ли в dockerfile запускать такого рода комманды
Cin
ну эмм... насколько я понимаю тебе нужен композер в контейнере
Cin
на мой взгляд вполне логично чтобы он подтянул все необходимое на этапе сборки контейнера
🦠
Ничо не понял
🦠
Че за сложности
🦠
Возьми образ альпайна
🦠
Укажи вольюмс
🦠
Все
🦠
Оно автоматом будет смотреть в папку
Cin
но композер же вроде должен подтянуть все зависимости? это нужно делать на этапе сборки контейнера?
🦠
Композер инсталл можно сделать и в докер компоузе юмл
🦠
Просто надо указать в докер компоуз юмл что папка вендор является не трекаемым кешом
Alexey
Композер инсталл можно сделать и в докер компоузе юмл
Вот у меня собственно с этим только и проблемы
Cin
о, а как в docker-compose.yml это сдалать?
Alexey
Все замечательно собирается, маунтится
🦠
cache: - vendor/ untracked: true
Alexey
Но когда я пробую добавить выполнение комманды в docker-compose.yml у меня контейнер php выходит со статусом 0
Alexey
Потом падает все остальное, что в депенденси стоит
🦠
Покажи какой образ используешь
Alexey
FROM php:7.1-fpm-alpine
Alexey
Сейчас покажу конфиг
Alexey
https://gist.github.com/mexoboy/a0e1e769ff4ed8d78ed4effc3b281f0d
Alexey
Вот кусок из docker-compose.yml
Alexey
entrypoint: - /bin/sh - -c command: - composer install - php-fpm tty: true
🦠
Cmd лишнее
Alexey
Спасибо, посмотрю
🦠
В докерфайле
Alexey
Да, спасибо. Уберу
🦠
Я тоже в первый раз мучался, думал из-за чего в инстанс не зайти никак
Alexey
Мужжииик
Alexey
Спасибо тебе!
Alexey
Все завелось :)))
Alexey
Я столько времени пытался понять в чем причина
🦠
Ну тоже опыт
Alexey
А не, поспешил...
Alexey
Композер выполнился, но php-fpm не стартанул
Alexey
osiris-php-fpm /bin/sh -c composer instal ... Exit 0
🦠
Потому что надо делать &&
Alexey
Да, получилось
Alexey
Спасибо :)
Cin
А теперь поясните мне, зачем каждый раз при старте контейнера делать composer install?
🦠
Чтобы тянуть все зависимости
🦠
У меня докер бегает в гитлаб раннере
Cin
Разве не логичнее делать это при сборке образа?
🦠
Нет
🦠
Образ собирается только при изменениях
🦠
Поменял докерфайл
🦠
Оно пересобрало
Cin
Т.е. ты ничего менять не будешь, а зависимости изменятся с багом и у тебя все упадет?
🦠
Ага
🦠
Обычно если все четко сделано, докер все из кеша берет
Cin
Какая-то страшная практика на мой взгляд.
🦠
Пропуская степы
🦠
Это общепринятая практика
Alexey
А теперь поясните мне, зачем каждый раз при старте контейнера делать composer install?
Дмитрий, я конечно с докером менее недели работаю - но для меня главной задачей было помочь ребятам поднять рабочее окружение и работать в винде
Cin
т.е. еще раз. Ты ничего не меняешь, просто рестартишь контейнер и он перестает работать, из-за того, что где-то кто-то что-то поменял и композер обновил зависимости при старте контейнера.
🦠
Обычно сломанные депенденси надо выявлять как можно раньше
Alexey
Почему контейнер должен падать?
🦠
Если кто-то поломал на проецируемой файловой системе сборку
🦠
Мы должны узнать первыми и по рукам атата
Cin
Ну для гитлабовского раннера - может быть нормально
🦠
И для разработки тоже хорошо
Alexey
Композер никак не поломает сборку. Максимум - это nginx начнет отдавать 500
🦠
Обычно процесс автоматического деплоя включает себя проверку свежайшего мастера
🦠
Если все тесты прошли, готовится образ и выкатывается в куб
Cin
Т.е. ты обновил все депенденси, прогнал тесты если все хорошо - деплоишь
🦠
И уже ответственность разработчика следить за стабильным состоянием мастера
🦠
А как иначе
Cin
Нет, с этим я согласен.
Cin
Мне про разработку непонятно.
🦠
Композер может и разработчиков быть обновлен
🦠
Тут проецируемая файловая система
Cin
А, ну т.е. это его забота прибить версию депенденси
Cin
разработчика всмысле
🦠
В нормальной разработке есть фиксация состояния композер лока и семантическое версионирование
🦠
В данном случае через тильду
🦠
Не выше самой минорной автоматически