Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过docker compose将环境传递给db_Javascript_Typescript_Docker_Docker Compose - Fatal编程技术网

Javascript 通过docker compose将环境传递给db

Javascript 通过docker compose将环境传递给db,javascript,typescript,docker,docker-compose,Javascript,Typescript,Docker,Docker Compose,我在通过docker compose传递环境时遇到问题,下面是我的代码: docker-compose.yml version: '3.7' services: app: build: context: . dockerfile: Dockerfile volumes: - .:/usr/src/app - /usr/src/app/node_modules ports: - 8080:8080 e

我在通过docker compose传递环境时遇到问题,下面是我的代码:

docker-compose.yml

version: '3.7'

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - .:/usr/src/app
      - /usr/src/app/node_modules
    ports:
      - 8080:8080
    expose: 
      - '8080'
    command: npm run start
    environment: 
        MYSQL_HOST: ${MYSQL_HOST}
        MYSQL_PORT: ${MYSQL_PORT}
        MYSQL_USERNAME: ${MYSQL_USERNAME}
        MYSQL_PASSWORD: ${MYSQL_PASSWORD}
        MYSQL_DATABASE: ${MYSQL_DATABASE}
Dockerfile

FROM node:12.17-alpine as builder

WORKDIR /build
COPY package*.json ./
RUN npm install

COPY . .
RUN  npm build

CMD [ "npm", "run", "start"]
db.config

      host: process.env.MYSQL_HOST,
      port: process.env.MYSQL_PORT ? +process.env.MYSQL_PORT : 3306,
      username: process.env.MYSQL_USERNAME,
      password: process.env.MYSQL_PASSWORD,
      database: process.env.MYSQL_DATABASE,
我通过MYSQL\u HOST=MYSQL\u PORT=MYSQL\u USERNAME=MYSQL\u PASSWORD=MYSQL\u DATABASE=docker compose up-d启动docker compose

为什么在成功构建我的应用程序后,从构建映像的docker控制台中,我会出现如下错误:

[Nest] 36 - 05/05/2021, 6:03:46 PM [ExceptionHandler] connect ECONNREFUSED 127.0.0.1:3306 +2ms

Error: connect ECONNREFUSED 127.0.0.1:3306
我向xaamp上的本地数据库提供了正确的凭据,如“localhost”、“root”等,但这在docker上不起作用:/

有人能告诉我怎么了吗


谢谢你的帮助

在我看来,您是在告诉它在
localhost
找到您自己,但是从您的容器内部看,
localhost
表示容器本身,而不是您的主机系统


如果您不使用linux,请尝试
MYSQL\u DATABASE=host.docker.internal
(我还没试过)

如果您使用的是linux,请尝试使用MYSQL\u DATABASE=172.17.0.1
(我刚刚试着卷曲我的主机,它完全可以正常工作)

你是说你在
MYSQL\u host=MYSQL\u PORT=MYSQL\u USERNAME=MYSQL\u PASSWORD=MYSQL\u DATABASE=docker compose-d中填写值,还是这样写的?我填e.q,
MYSQL\u HOST=localhost MYSQL\u PORT=3306 MYSQL\u USERNAME=root MYSQL\u PASSWORD=MYSQL\u DATABASE=test\u db docker compose up-d