Docker-节点,找不到mysql模块

时间:2020-01-25 13:33:34

标签: node.js docker docker-compose mysql-connector

我正在尝试创建一个带有节点,mysql的docker,并在正面进行响应。但是,当我尝试导入mysql lib时,出现以下错误:

const express = require("express");
const router  = express.Router();
const mysql   = require('mysql');

错误:找不到模块'mysql'

我已经检查了我的node_modules文件夹,并且那里有一个mysql目录。
这是我的package.json:

{
  "name": "api",
  "version": "1.0.0",
  "private": true,
  "scripts": {
    "start": "node bin/www",
    "dev": "./node_modules/.bin/nodemon bin/www"
  },
  "dependencies": {
    "cookie-parser": "~1.4.3",
    "cors": "^2.8.4",
    "debug": "~2.6.9",
    "express": "~4.16.0",
    "http-errors": "~1.6.2",
    "jade": "~1.11.0",
    "morgan": "~1.9.0",
    "mysql": "^2.18.1",
    "node-mysql": "^0.4.2"
  },
  "devDependencies": {
    "nodemon": "^1.14.12"
  }
}

这是我的Dockerfile,我尝试在容器内全局安装mysql,但没有解决:

FROM mhart/alpine-node:12

WORKDIR /api

COPY package*.json /api/

RUN npm i -G nodemon
RUN npm install -G mysql
RUN npm install

COPY . /api/

EXPOSE 80

CMD ["npm", "run", "dev"]

docker-compose.yml

version: "3"
services:
    client:
        container_name: MY_api
        image: mhart/alpine-node:12
        build: ./client      
        restart: always
        ports:
            - "3000:3000"
        working_dir: /client
        volumes:
            - ./client:/client
        entrypoint: ["npm", "start"]
        links:
            - api
        networks: 
            - MY_network
    api:
        container_name: MY_client
        build: ./api
        restart: always
        ports:
            - "9000:9000"
        working_dir: /api
        volumes:
            - ./api:/api
            - /api/node_modules
        depends_on: 
            - mysqldb
        networks:
            - MY_network
    mysqldb:
        container_name: MY_mysql
        image: mysql:8.0.19
        restart: always
        ports:
            - "3307:3306"
        environment:
            - MYSQL_ROOT_PASSWORD=MY_PASS 
            - MYSQL_USER=USER
            - MYSQL_PASSWORD=MY_PASS
            - MYSQL_DATABASE=MY_DATABASE
        networks: 
            - MY_network
networks:
    MY_network:
        driver: bridge



1 个答案:

答案 0 :(得分:2)

从docker-compose中删除已安装的卷2000,2002,2004,2006,2008,2020,2022,2024,2026,2028,2040,2042,2044,2046,2048,2060,2062,2064,2066,2068,2080,2082,2084,2086,2088,2200,2202,2204,2206,2208,2220,2222,2224,2226,2228,2240,2242,2244,2246,2248,2260,2262,2264,2266,2268,2280,2282,2284,2286,2288,2400,2402,2404,2406,2408,2420,2422,2424,2426,2428,2440,2442,2444,2446,2448,2460,2462,2464,2466,2468,2480,2482,2484,2486,2488,2600,2602,2604,2606,2608,2620,2622,2624,2626,2628,2640,2642,2644,2646,2648,2660,2662,2664,2666,2668,2680,2682,2684,2686,2688,2800,2802,2804,2806,2808,2820,2822,2824,2826,2828,2840,2842,2844,2846,2848,2860,2862,2864,2866,2868,2880,2882,2884,2886,2888,4000,4002,4004,4006,4008,4020,4022,4024,4026,4028,4040,4042,4044,4046,4048,4060,4062,4064,4066,4068,4080,4082,4084,4086,4088,4200,4202,4204,4206,4208,4220,4222,4224,4226,4228,4240,4242,4244,4246,4248,4260,4262,4264,4266,4268,4280,4282,4284,4286,4288,4400,4402,4404,4406,4408,4420,4422,4424,4426,4428,4440,4442,4444,4446,4448,4460,4462,4464,4466,4468,4480,4482,4484,4486,4488,4600,4602,4604,4606,4608,4620,4622,4624,4626,4628,4640,4642,4644,4646,4648,4660,4662,4664,4666,4668,4680,4682,4684,4686,4688,4800,4802,4804,4806,4808,4820,4822,4824,4826,4828,4840,4842,4844,4846,4848,4860,4862,4864,4866,4868,4880,4882,4884,4886,4888,6000,6002,6004,6006,6008,6020,6022,6024,6026,6028,6040,6042,6044,6046,6048,6060,6062,6064,6066,6068,6080,6082,6084,6086,6088,6200,6202,6204,6206,6208,6220,6222,6224,6226,6228,6240,6242,6244,6246,6248,6260,6262,6264,6266,6268,6280,6282,6284,6286,6288,6400,6402,6404,6406,6408,6420,6422,6424,6426,6428,6440,6442,6444,6446,6448,6460,6462,6464,6466,6468,6480,6482,6484,6486,6488,6600,6602,6604,6606,6608,6620,6622,6624,6626,6628,6640,6642,6644,6646,6648,6660,6662,6664,6666,6668,6680,6682,6684,6686,6688,6800,6802,6804,6806,6808,6820,6822,6824,6826,6828,6840,6842,6844,6846,6848,6860,6862,6864,6866,6868,6880,6882,6884,6886,6888,8000,8002,8004,8006,8008,8020,8022,8024,8026,8028,8040,8042,8044,8046,8048,8060,8062,8064,8066,8068,8080,8082,8084,8086,8088,8200,8202,8204,8206,8208,8220,8222,8224,8226,8228,8240,8242,8244,8246,8248,8260,8262,8264,8266,8268,8280,8282,8284,8286,8288,8400,8402,8404,8406,8408,8420,8422,8424,8426,8428,8440,8442,8444,8446,8448,8460,8462,8464,8466,8468,8480,8482,8484,8486,8488,8600,8602,8604,8606,8608,8620,8622,8624,8626,8628,8640,8642,8644,8646,8648,8660,8662,8664,8666,8668,8680,8682,8684,8686,8688,8800,8802,8804,8806,8808,8820,8822,8824,8826,8828,8840,8842,8844,8846,8848,8860,8862,8864,8866,8868,8880,8882,8884,8886,8888

并删除Dockerfile中的这些行- /api/node_modules RUN npm i -G nodemon

一切都应该正常