this is my first post in the forum.
I have a php5.6 + apache application running in docker compose, named gru_joomla_1
Docker version: Docker version 19.03.8, build afacb8b7f0
Container image: joomla:3.9-php5.6-apache
Apache version in image: 2.4.25
If I try to make an http request from another container (from a different compose stack, with external network of gru_joomla_1 included to scope) to the one running apache (listening to port 80) i got a “400 Bad Request” error.
In order to make some test I installed curl in a couple of containers, trying to make the request, obtaining the same error:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>400 Bad Request</title> </head><body> <h1>Bad Request</h1> <p>Your browser sent a request that this server could not understand.<br /> </p> <p>Additionally, a 400 Bad Request error was encountered while trying to use an ErrorDocument to handle the request.</p> <hr> <address>Apache/2.4.25 (Debian) Server at gru.it Port 80</address> </body></html>
I can successfully ping and make telnet connection to port 80 from the same container obtaining the error.
The strange thing is that I can succesfully browse the application from my browser and, moreover, curl works from the same container above if I use the internal docker ip address or any domain name (previously updating the /etc/hosts file of the container sendin the request)
For now I solved the problem by using an nginx image instead of apache, but why does apache answers with bad request if reached by container name?
Thank you in advance
Here’s my docker-compose.yml
version: '3.7' services: db-gru: image: mysql:5.5.54 env_file: - variables-gru.env volumes: - ./volumes/mysql-gru:/var/lib/mysql - ./init-gru:/docker-entrypoint-initdb.d - ./my.cnf:/etc/mysql/my.cnf - ./log/mysql-gru:/var/log networks: - backend db-joomla: image: mysql:5.5.54 env_file: - variables-joomla.env volumes: - ./volumes/mysql-joomla:/var/lib/mysql - ./init-joomla:/docker-entrypoint-initdb.d - ./my.cnf:/etc/mysql/my.cnf - ./log/mysql-joomla:/var/log networks: - backend joomla: image: joomla:3.9-php5.6-apache depends_on: - db-joomla - db-gru env_file: - variables-joomla.env volumes: - ./volumes/joomla-root:/var/www/gru - ./site.conf:/etc/apache2/sites-enabled/000-default.conf - ./log/joomla:/var/log ports: - "80:80" networks: - frontend - backend networks: frontend: driver: bridge backend: driver: bridge