Há dois problemas que posso ver:
-
Tente adicionar
links: - mysql:mysql
para oappservice em seu arquivo Docker Compose. Isso garantirá que você possa acessar omysqlcontêiner doapp. Ele irá configurar um mapeamento de nome de host (DNS) em seuappcontainer, então quando vocêping mysqldoapp, ele irá resolvê-lo para omysqlendereço IP do contêiner.
-
Em seu.pyarquivo, onde você está definindo qual host para se conectar? Adicionarhost="mysql"paraconnectligar. Por padrão, ele se conectará a127.0.0.1, que é o que você está vendo.
cnx = mysql.connector.connect(host="mysql", user="root", password = 'root', database=malicious)
A correção de ambos deve resolver seu problema.