🦠
Я работал в перконе в момент захода в облака
Александр
смысли волюм? там же обычный линуксовый mount — не?
типа того, но всё же это mount, а не напрямую писать в файл
Александр
в сокет сервера, точнее
Oleg
в сокет сервера, точнее
помоему это какое-то суверие
Александр
помоему это какое-то суверие
Без проверок - да, я об этом и писал)
🦠
Докер это обертка, любая запись в контейнере это огромный оверхед по сравнению plain read-write
Oleg
если волюм локальный со стандартным драйвером - mount - откуда оверхед?
Александр
от самого маунта. В сервере на хосте нет маунта. И я не уверен, что там просто маунт, если честно. Может, он и через сокет докера общается с волюмами
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
Александр
ну там не в домашнюю, но пишешь в неё)
🦠
Пишите непосредственно в контейнер
Александр
Осталось понять, есть ли зависимость от ос
Александр
если линукс, конечно. На маках например там вообще говорить не о чем
Oleg
Если писать в вольюм - там direct io
разве? мне кажется это там маунтится в /var/lib/doker/куда-то-там
pavel
я запустил джинкс в докере как мне на него попасть? по какому айпи
Oleg
если линукс, конечно. На маках например там вообще говорить не о чем
на маках нет докера. есть виртуалка с линкусом внутре которой докер.
Александр
на маках нет докера. есть виртуалка с линкусом внутре которой докер.
но волюмы в эту виртуалку ппц как тормозят из-за osxfs
Oleg
а ну, да
Oleg
там много еще забавных сайд-эффектов возникает
Александр
ага, приходится через nfs прокидывать)
Anonymous
Здравствуйте. Как выполнить консольный скрипт (который лежит на хосте) при запуске контейнера? Команды из скрипта должны выполнится в контейнере.
Oleg
с именовааным волюмом docker run --rm -it -v test-volume:`pwd -w pwd alpine /bin/sh`
Oleg
Oleg
один фиг
Oleg
разница в долях секунды не принципиальна: если тот же самый dd запускать несктлько раз подряд то результаты будут всегда отличаться на величины такого же порядка
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
Нет слов
Александр
Я использую Docker compose, а не Dockerfile. Брать готовый образ я не хочу.
Какой-то готовый всё равно придётся взять) И если уж брать, почему бы не вять apache:alpine и не прокинуть туда свои конфиги?
Anonymous
если коротко: то это не по феншую
А почему? В Dockerfile можно делать bind mount ?
Александр
https://hub.docker.com/_/php/
Anonymous
Ну вот. И в Dockerfile нет возможности делать bind mount. Поэтому я использую Docker compose
Александр
у пхп есть образы с апачем)
Александр
Anonymous
Ничто не мешает, но мне нужен apache
Александр
Dockerfile собирает контейнер, а не маунтит. Маунты вы указываете при запуске
Александр
Ничто не мешает, но мне нужен apache
Я же скинул ссылку на php-apache от php официального. Но к php-fpm/nginx всё-таки присмотритесь
Александр
Oleg
А почему? В Dockerfile можно делать bind mount ?
В докер-файле описывается только образ (image) Какие конкретно к нему будут маунты с хост машины — задается на этапе или docker run… или в docker-compose (если используюься компоуз) Но феншуйно чтобы все пакеты и зависимости собирались на этапе соборки образа а не запуска контейнера. Т.е. были описаны в Dockerfile и нигде больше. На этапе запуска контейнера православно запускать только сам рабочий процесс ну и максимум проводить всякие квазикоррекции: типа права доступа и пр (тн `entrypoint`)
Oleg
т.е. если вам надо апач с пхп определенной версии и еще что-то специфичное, то вы просто описываете весь процесс установки всего этого в докерфайле. а в композе говорите, что "образ для этого контейнера создай мне вот из этого моего Dockerfile"
Anonymous
Хорошо, так и сделаю.
Anonymous
Я же скинул ссылку на php-apache от php официального. Но к php-fpm/nginx всё-таки присмотритесь
Nginx + php-fpm хорош, когда нужно запустить сайты на одном движке. У меня виртуальный хостинг - Nginx и Apache будут в контейнерах Docker. PHP-FPM тоже можно сюда приплести, но у Nginx под каждую CMS свой конфигурационный файл. Поэтому php-fpm тут не подходит.
Anonymous
Я сам использую эту связку
Anonymous
Но мне нужно что-то более универсальное
Александр
На одном хосте
Anonymous
На одном хосте
Я говорю об обычном виртуальном хостинге
Anonymous
Где сайтов не 10, а 100 или больше.
Александр
Тоже не вижу проблем
Александр
Можете в nginx прокинуть хоть 1000 конфигов
Anonymous
Да, могу. Но у каждой CMS свой конфиг. Откуда я знаю, что там у клиента - Joomla, Drupal или вообще 1С-Битрикс?
Anonymous
Вот за что я и не люблю Nginx с php-fpm
Anonymous
У Apache есть .htaccess, у Nginx такого нет. Всё приходится делать ручками в конфиге.