【发布时间】:2021-06-23 18:14:25
【问题描述】:
我在使用 fastify CLI 和 docker 时遇到问题。我想创建一个与 fastify 一起使用的 ArangoDB 数据库,所以我创建了一个 docker-compose 文件,如下所示:
码头工人撰写
arangodb:
# container_name: arangodb
build:
context: ./bdd
dockerfile: Dockerfile
ports:
- 8529:8529
volumes:
- ./bdd/data:/var/lib/arangodb3
- ./bdd/apps:/var/lib/arangodb3-apps
api:
# container_name: api
build:
context: ./api
dockerfile: Dockerfile
ports:
- 5000:5000
depends_on:
- arangodb
volumes:
- ./api:/usr/api
- /usr/api/node_modules
这是调用我的 api Dockerfile :
FROM node:14.17.1
WORKDIR /usr/api
COPY package*.json ./
RUN npm install
COPY . .
ENV DB_HOST=arangodb
ENV DB_PORT=8529
ENV DB_NAME=***
ENV DB_USER=***
ENV DB_PASS=***
ENV FASTIFY_ADDRESS=0.0.0.0
EXPOSE 5000
CMD [ "npm", "run", "dev" ]
我将 FASTIFY_ADRRESS 设置为 0.0.0.0,因为 docker 在 0.0.0.0 上公开为 explained here。
但是当我使用该图像启动 docker 容器时,arangoDb 工作正常,但我的 api 返回:
api@1.0.0 开发 /usr/api api_1 | > fastify start -w -l info -P -p 5000 app.js api_1 | api_1 |错误:连接 ECONNREFUSED 127.0.0.1:8529 api_1 |在 TCPConnectWrap.afterConnect [as oncomplete] (net.js:1148:16) {
我错过了什么吗?
【问题讨论】:
-
您的 DB_HOST 似乎被忽略
ECONNREFUSED 127.0.0.1:8529并且 fastify 容器尝试本地主机 -
你有没有想过这个问题?我遇到了同样的问题。
-
@JohnD。看看我的回答。
标签: docker docker-compose dockerfile arangodb fastify