【问题标题】:Can't access Adonis from Docker Container无法从 Docker 容器访问 Adonis
【发布时间】:2020-08-12 08:43:39
【问题描述】:

我使用 Docker 来包含我的 Adonis 应用程序。构建成功,但是当我访问应用程序时,我得到了ERR_SOCKET_NOT_CONNECTEDERR_CONNECTION_RESET

我的 docker compose 包含 adonis 和数据库。之前,我在我的 expressjs 应用中使用与此类似的设置,它没有问题。

adonis .env 保持标准,修改。

这是我的设置:

# docker-compose.yml

version: '3'
services:
  adonis:
    build: ./adonis
    volumes:
      - ./adonis/app:/usr/src/app
    networks:
      - backend
    links:
      - database
    ports:
      - "3333:3333"
  
  database:
    image: mysql:5.7
    ports:
      - 33060:3306
    networks:
      - backend
    environment:
      MYSQL_USER: "user"
      MYSQL_PASSWORD: "root"
      MYSQL_ROOT_PASSWORD: "root"

  networks:
    backend:
      driver: bridge
# adonis/Dockerfile

FROM node:12-alpine

RUN npm i -g @adonisjs/cli

RUN mkdir -p /usr/src/app

WORKDIR /usr/src/app

COPY ./app/. .

RUN npm install

EXPOSE 3333

CMD ["adonis", "serve", "--dev"]  

我没有发现我的设置有什么问题。

【问题讨论】:

    标签: javascript docker adonis.js


    【解决方案1】:

    serve 命令在项目根目录中 .env 文件中定义的端口上启动 HTTP 服务器。

    你应该有这样的东西(注意HOST 必须设置为0.0.0.0 而不是localhost 才能接受来自外部的连接):

    HOST=0.0.0.0
    PORT=3333
    APP_URL=http://${HOST}:${PORT}
    

    【讨论】:

    • 我很高兴它做到了。感谢您的反馈!
    • 非常感谢。我拉了一天多的头发,想知道为什么这不起作用。
    猜你喜欢
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    • 2016-03-18
    • 2018-08-09
    • 1970-01-01
    • 2020-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多