Я запускаю приложение LAMP, используя docker compose в Ubuntu 21.04. Приложение очень медленное.
Проверяя статистику докера, я вижу, что процент использования ЦП при загрузке страницы большую часть времени составляет около 0,01 *%, за исключением нескольких всплесков, которые, к сожалению, длятся несколько секунд, когда использование ЦП достигает более высокий процент (около 20% - 30%).
Информация о докере:
ПРЕДУПРЕЖДЕНИЕ. Ошибка при загрузке файла конфигурации: .dockercfg: $HOME не определен.
Клиент:
Контекст: по умолчанию
Режим отладки: ложь
Сервер:
Контейнеры: 13
Бег: 3
Приостановлено: 0
Остановлено: 10
Изображения: 34
Версия сервера: 19.03.13
Драйвер хранилища: overlay2
Резервная файловая система: extfs
Поддерживает d_type: правда
Нативное оверлейное различие: правда
Драйвер ведения журнала: json-файл
Драйвер группы: cgroupfs
Плагины:
Объем: местный
Сеть: хост-мост ipvlan macvlan null overlay
Журнал: awslogs fluentd gcplogs gelf journald json-file localentries splunk syslog
Рой: неактивен
Время выполнения: runc
Среда выполнения по умолчанию: runc
Двоичный файл инициализации: docker-init
версия containerd: 8fba4e9a7d01810a393d5d25a3621dc101981175
версия запуска:
версия инициализации: fec3683
Параметры безопасности:
одежда
секкомп
Профиль: по умолчанию
Версия ядра: 5.11.0-22-универсальная
Операционная система: Ubuntu Core 18
Тип ОС: линукс
Архитектура: x86_64
Процессоры: 8
Общая память: 15,36 ГБ
Имя: Фабрицио-XPS-13-9305
ID: C7F4:H3BH:6S65:I24Q:PJ4W:EEBN:SXMH:V2GN:B67C:XYUL:R56O:5AKX
Корневой каталог Docker: /var/snap/docker/common/var-lib-docker
Режим отладки: ложь
Реестр: https://index.docker.io/v1/
Ярлыки:
Экспериментальный: ложь
Небезопасные реестры:
127.0.0.0/8
Динамическое восстановление включено: false
Вот файл docker-compose.yml:
версия: '3'
Сервисы:
апач:
зависит от:
- мариадб
строить:
контекст: .
докерфайл: apache/dockerfile
аргументы:
URL: 'fp.example.com'
среда:
- URL=fp.example.com
изображение: апач
порты:
- "80:80"
- "443:443"
тома:
- ../fp.example:/var/www/fp.example
- ./журналы/апач:/вар/лог/апач2
ссылки:
- mariadb:база данных"
- солр:солр"
мариадб:
изображение: mariadb:10,5-фокусное
порты:
- "3306:3306"
тома:
- ./mysql:/var/lib/mysql
среда:
MYSQL_ROOT_PASSWORD: ***********
MYSQL_DATABASE: *********
MYSQL_USER: ***********
MYSQL_ПАРОЛЬ: ***********
решение:
изображение: соль: 8
порты:
- "8983:8983"
тома:
- ./солр:/вар/солр
Вот мой apache Dockerfile:
ИЗ убунту: 20.04
LABEL Description="Ubuntu Lamp [APACHE PHP MYSQL]" \
Лицензия="Лицензия Apache 2.0" \
Использование="" \
Версия = "1.0"
URL-адрес АРГ
ENV ТЕРМИН=xterm\
TZ=Европа/Берлин\
DEBIAN_FRONTEND=неинтерактивный
RUN apt-получить обновление
#RUN apt-get upgrade -y
RUN apt-get install -y --fix-missing \
смола \
почтовый индекс \
распаковать \
сед \
нано \
апач2 \
libapache2-mod-php \
php \
php-кли \
php-общий \
php-dev \
php-fpm \
php-gd \
php-json \
php-mbstring \
php-mysql\
php-readline \
php-мыло \
php-аккуратный \
php-xdebug \
php-xmlrpc \
php-zip \
композитор
# -- ВИШНЯ -- #
ЗАПУСК mkdir /var/www/$URL
RUN chown -R www-data:www-data /var/www/$URL
КОПИРОВАТЬ /apache/apache.conf /etc/apache2/сайты-доступны/
КОПИРОВАТЬ /apache/php.ini /etc/php/7.4/apache2/
КОПИРОВАТЬ /apache/cert/myCA.crt /usr/local/share/ca-certificates/
КОПИРОВАТЬ /apache/сертификат/crt /etc/apache2/ssl/
КОПИРОВАТЬ /apache/сертификат/ключ /etc/apache2/ssl/
# -- ОБЪЕМЫ -- #
ОБЪЕМ /var/www/$URL
ТОМ /var/журнал/apache2
#АПАЧ
ЗАПУСК a2enmod переписать
ЗАПУСК a2enmod ssl
ЗАПУСК a2dissite 000-по умолчанию
ЗАПУСТИТЬ a2ensite apache
ЗАПУСК phpenmod xdebug
ЗАПУСК phpenmod аккуратный
RUN update-ca-certificates
#XDEBUG
RUN echo "xdebug.remote_enable = 1" >> /etc/php/7.4/mods-available/xdebug.ini
RUN echo "xdebug.remote_host = docker.for.mac.host.internal" >> /etc/php/7.4/mods-available/xdebug.ini
RUN echo "xdebug.remote_port = 10000" >> /etc/php/7.4/mods-available/xdebug.ini
RUN echo "xdebug.remote_autostart = 1" >> /etc/php/7.4/mods-available/xdebug.ini
RUN echo "xdebug.remote_log=/var/log/apache2/xdebug.log" >> /etc/php/7.4/mods-available/xdebug.ini
ЭКСПОЗИЦИЯ 80
ВЫСТАВИТЬ 443
Служба CMD apache2 start && tail -f /dev/null
Я публикую это здесь, так как тот же проект, работающий на Mac и Windows, работает хорошо. Поэтому я думаю, что проблема может быть связана с докером в Ubuntu.
Спасибо всем заранее.