Es kann keine Verbindung zum MySQL-Docker-Container von einem anderen Container im selben Netzwerk hergestellt werden, der Zugriff ist jedoch von außen möglich
P粉116631591
P粉116631591 2023-09-12 20:37:02
0
1
517

Ich habe zwei Container – „node.js“ und „mysql“, die beide so eingerichtet sind, dass sie sich im selben Netzwerk befinden. Durch Ausführen von docker-compose up -d werden die Container gestartet und sie funktionieren. Ich kann von außen auf „node.js“ bzw. „mysql“ zugreifen.

Aber ich kann von „node.js“ aus keine Verbindung zu „mysql“ herstellen. Mache ich hier etwas falsch?

version: '3'

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    env_file: .env
    volumes:
      - .:/app
    ports:
      - ${APP_PORT}:${APP_PORT}
    depends_on:
      - mysql
    networks:
      - appnet

  mysql:
    image: mysql:8.0
    restart: always
    env_file: .env
    environment:
      - MYSQL_ROOT_HOST=%
      - MYSQL_ROOT_PASSWORD=${DB_PASSWORD}
      - MYSQL_DATABASE=${DB_NAME}
      - MYSQL_USER=${DB_USERNAME}
      - MYSQL_PASSWORD=${DB_PASSWORD}
    volumes:
      - mysql-data:/var/lib/mysql
    ports:
      - ${DB_PORT}:${DB_PORT}
    networks:
      - appnet

networks:
  appnet:

volumes:
  mysql-data:

Um eine Verbindung zu MySQL herzustellen, habe ich das Paket „knex.js“ verwendet und es funktioniert einwandfrei auf meinem lokalen Computer (gleiche Docker-Konfiguration)

P粉116631591
P粉116631591

Antworte allen(1)
P粉232793765

应该在可能构建得很糟糕的环境级别上看到,这里是一个包含 docker-compose 的链接:

https://varsubham.medium.com/nodejs-mysql-docker -compose-ad156cd0c885

希望这对你有帮助

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage