Saya mempunyai dua bekas - "node.js" dan "mysql", kedua-duanya disediakan untuk berada pada rangkaian yang sama. Melakukan docker-compose up -d memulakan bekas dan ia berfungsi, saya boleh mengakses "node.js" dan "mysql" masing-masing dari luar.
Tetapi saya tidak dapat menyambung ke "mysql" daripada "node.js". Adakah saya melakukan sesuatu yang salah di sini?
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:
Untuk menyambung ke MySQL, saya menggunakan pakej "knex.js" dan ia berfungsi dengan baik pada mesin tempatan saya (konfigurasi docker yang sama)
Sepatutnya dilihat pada tahap persekitaran yang mungkin dibina dengan buruk, berikut ialah pautan ke docker-compose:
https://varsubham.medium.com/nodejs-mysql-docker-compose-ad156cd0c885
Semoga ini membantu anda