Rumah > Soal Jawab > teks badan
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)
P粉2327937652023-09-13 14:36:34
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