Pessoal, boa tarde!
Tenho um ambiente conteinerizado utilizando o Docker + WSL2 em uma rede com VPN.
docker-compose.yml
version: "3.5"
services:
ec2-linux:
build:
context: ${SERVER_DOCKERFILE:-./docker/ec2-linux}
args:
PHP_MEMORY_LIMIT: ${PHP_MEMORY_LIMIT:-128M}
container_name: teste-ec2-linux
stdin_open: true # docker run -i
tty: true # docker run -t
working_dir: /var/www/html/
volumes:
- .:/var/www/html/
ports:
- "8001:80"
networks:
- teste
mysql:
image: mysql:5.7.33
environment:
MYSQL_ROOT_PASSWORD: root
ports:
- 3316:3306
volumes:
- mysql-db-data:/var/lib/mysql
networks:
- teste
postgres:
image: postgres:9.6-alpine
environment:
POSTGRES_USER: root
POSTGRES_PASSWORD: root
POSTGRES_DB: teste
ports:
- 5442:5432
volumes:
- postgres-db-data:/var/lib/postgres
networks:
- teste
networks:
teste:
name: teste
driver: bridge
volumes:
mysql-db-data:
postgres-db-data:
Dockerfile
FROM amazonlinux
RUN yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm \
yum clean all && yum makecache fast && yum -y update \
&& yum -y install https://mirror.webtatic.com/yum/el7/webtatic-release.rpm && yum -y update \
&& yum -y install git composer php56w php56w-cli php-56w-common php56w-opcache php56w-mysql php56w-pgsql php56w-mbstring php56w-xml php56w-gd php56w-pear php56w-intl php56w-pecl-xdebug.x86_64 \
&& yum -y install php-drush-drush postfix tcping which && yum clean all \
&& echo "xdebug.remote_enable=on" >> /etc/php.d/xdebug.ini \
&& echo "xdebug.remote_handler=dbgp" >> /etc/php.d/xdebug.ini \
&& echo "xdebug.remote_port=9000" >> /etc/php.d/xdebug.ini \
&& echo "xdebug.remote_autostart=on" >> /etc/php.d/xdebug.ini \
&& echo "xdebug.remote_connect_back=1" >> /etc/php.d/xdebug.ini \
&& echo "xdebug.idekey=docker" >> /etc/php.d/xdebug.ini
# Setup php.ini
COPY config/php.ini /etc/php.ini
EXPOSE 80
ENTRYPOINT ["/usr/sbin/httpd"]
CMD ["-DFOREGROUND"]
Tudo está funcionando bem na parte do build e de levantar o container:
docker-compose up -d
O problema está na hora de acessar o local server: http://localhost:8001/login.html
- Para fazer login é cerca de 1 minuto ou mais.
- Em cada menu da aplicação que se clica, leva mais de 1 minuto para carregar.
Ainda não faço muito ideia do que pode estar causando essa lentidão (para todos da empresa, cada um levanta o container na sua própria máquina), mas suspeito que, por estar na VPN, acabe atrasando um pouco a rota, embora a "rede docker" criada pareça bem normal:
NETWORK ID NAME DRIVER SCOPE
50968ee877eb bridge bridge local
6de6340c966e web_default bridge local
fde3d7823817 host host local
6e6cc3c7c538 none null local
Utilizamos a VPN para acessar as bases de dados.
Em um dos testes que fiz, olhando em tempo real as requisições chegando no httpd: "tail -f access_log", cada requisição era uma eternidade.
E, por aqui, aparentemente, não há nada de anormal com CPU/Memória:
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
b4a8e5d79686 ec2-linux 0.37% 28.64MiB / 7.673GiB 0.36% 746B / 0B 0B / 0B 47
87805e873edd mysql_1 0.08% 183.9MiB / 7.673GiB 2.34% 836B / 0B 0B / 0B 27
d26355b7c7ef postgres_1 0.05% 7.23MiB / 7.673GiB 0.09% 746B / 0B 0B / 0B 6
Alguém tem alguma sugestão de como posso melhorar esse carregamento de página?
"docker-compose version 1.29.2"
"Docker version 20.10.8"