🦠
Я работал в перконе в момент захода в облака
Александр
в сокет сервера, точнее
🦠
Докер это обертка, любая запись в контейнере это огромный оверхед по сравнению plain read-write
Oleg
если волюм локальный со стандартным драйвером - mount - откуда оверхед?
Oleg
Александр
от самого маунта. В сервере на хосте нет маунта. И я не уверен, что там просто маунт, если честно. Может, он и через сокет докера общается с волюмами
Oleg
помойму оверхд там только на нетвоке в режиме host — тогда через докеровский пркоси все свистит и это прям видно
🦠
пруф
Пруф того, что при записи в слой контейнера докер не использует прямой доступ?
Oleg
про оверхед
Oleg
запись 4 гб на диск
🦠
Конфигурацию покажите
Oleg
DgitalOcean 512MB / 1 CPU
Oleg
1. Ubuntu 1604
Oleg
2. Docker version 17.11.0-ce / alpine внутре вышеназванной убунты
Oleg
Александр
А если в прокинутый волюм?
Александр
на том же серваке
Oleg
смысле? именованный?
Александр
не, просто с хоста прокинь
Oleg
так это и есть прокинутый
Александр
хотя ты прокинул
Oleg
в домашнюю папку смонтирована домашняя папка хоста
🦠
Если писать в вольюм - там direct io
Александр
ну там не в домашнюю, но пишешь в неё)
🦠
Пишите непосредственно в контейнер
Александр
Осталось понять, есть ли зависимость от ос
Александр
если линукс, конечно. На маках например там вообще говорить не о чем
pavel
я запустил джинкс в докере как мне на него попасть? по какому айпи
Александр
Oleg
а ну, да
Oleg
там много еще забавных сайд-эффектов возникает
Александр
ага, приходится через nfs прокидывать)
Anonymous
Здравствуйте. Как выполнить консольный скрипт (который лежит на хосте) при запуске контейнера? Команды из скрипта должны выполнится в контейнере.
Oleg
с именовааным волюмом
docker run --rm -it -v test-volume:`pwd -w pwd alpine /bin/sh`
Oleg
Oleg
один фиг
Oleg
разница в долях секунды не принципиальна: если тот же самый dd запускать несктлько раз подряд то результаты будут всегда отличаться на величины такого же порядка
Александр
Oleg
Anonymous
Не думаю, что это подойдёт. Я в контейнер монтирую папку /etc/apache2/sites-available (на хосте и в контейнере путь одинаковый). Если я примонтирую папку на хосте в /etc/apache2/sites-available, хотя в контейнере нет на момент монтирования папки /etc/apache2, у меня скорее всего будет ошибка. Т.е. надо сначала поставить Apache, а потом уже монтировать папку с конфигами Apache с хоста в контейнер.
Anonymous
command: "apt update"
command: "apt install -y apache2"
command: "bash /etc/entry.sh"
Anonymous
Лучше так будет:
Anonymous
command:
- "apt update"
- "apt install -y apache2"
- "bash /etc/entry.sh"
Anonymous
Если это, конечно, возможно в Docker Compose
Anonymous
Ты не хочешь в докер файл добавить установку апача?
Anonymous
Или взять готовый образ?
Anonymous
Я использую Docker compose, а не Dockerfile. Брать готовый образ я не хочу.
Anonymous
Нет слов
Oleg
Anonymous
Александр
https://hub.docker.com/_/php/
Anonymous
Ну вот. И в Dockerfile нет возможности делать bind mount. Поэтому я использую Docker compose
Александр
у пхп есть образы с апачем)
Александр
Anonymous
Ничто не мешает, но мне нужен apache
Александр
Dockerfile собирает контейнер, а не маунтит. Маунты вы указываете при запуске
Александр
Oleg
А почему? В Dockerfile можно делать bind mount ?
В докер-файле описывается только образ (image)
Какие конкретно к нему будут маунты с хост машины — задается на этапе или docker run… или в docker-compose (если используюься компоуз)
Но феншуйно чтобы все пакеты и зависимости собирались на этапе соборки образа а не запуска контейнера. Т.е. были описаны в Dockerfile и нигде больше.
На этапе запуска контейнера православно запускать только сам рабочий процесс ну и максимум проводить всякие квазикоррекции: типа права доступа и пр (тн `entrypoint`)
Oleg
т.е. если вам надо апач с пхп определенной версии и еще что-то специфичное, то вы просто описываете весь процесс установки всего этого в докерфайле. а в композе говорите, что "образ для этого контейнера создай мне вот из этого моего Dockerfile"
Anonymous
Хорошо, так и сделаю.
Anonymous
Я сам использую эту связку
Anonymous
Но мне нужно что-то более универсальное
Александр
Александр
На одном хосте
Anonymous
Где сайтов не 10, а 100 или больше.
Александр
Тоже не вижу проблем
Александр
Можете в nginx прокинуть хоть 1000 конфигов
Anonymous
Да, могу. Но у каждой CMS свой конфиг. Откуда я знаю, что там у клиента - Joomla, Drupal или вообще 1С-Битрикс?
Anonymous
Вот за что я и не люблю Nginx с php-fpm
Anonymous
У Apache есть .htaccess, у Nginx такого нет. Всё приходится делать ручками в конфиге.