【问题标题】:cannot GET /myNodeApp with docker + traefik + nodejs stack无法使用 docker + traefik + nodejs 堆栈获取 /myNodeApp
【发布时间】:2021-06-14 21:59:04
【问题描述】:

我正在尝试执行以下操作:

  • 公开运行 dockerized nodejs 应用程序
  • 使用 traefik 作为 HTTPS 的反向代理

我的文件结构是:

root/
 |_ docker-compose.yml
 |_www/
    |_ app/
        |_ Dockerfile
        |_ package.json
        |_ server.js
        |_ static/

我的docker-compose.yml 文件是:

version: "3.3"
services:
    myNodeApp:
      container_name: myNodeApp
      build:
          context: ./www/app
      environment:
        - NODE_ENV=production
      networks:
        - default
      labels:
        - "traefik.enable=true"
        - "traefik.http.routers.myNodeApp.rule=Host(`my.url.example.com`) && PathPrefix(`/myNodeApp`)"
        - "traefik.http.routers.myNodeApp.tls.certresolver=myresolver"
        - traefik.docker.network=myExternalNetworkName
      volumes:
        - /home/myUsername/myProjectDir/www/app:/var/www/html
networks:
  default:
    external:
      name: myExternalNetworkName

我的 Dockerfile 是:


FROM node:14

# Create app directory
WORKDIR /home/myUsername/myProjectDir/www/app

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./

RUN npm install

# Bundle app source
COPY . .

EXPOSE 3000

CMD [ "node", "server.js" ]

当我写$ docker-compose up 时,我得到:

Attaching to myProjectDir_1
myNodeApp_1  | serving on port:  3000
myNodeApp_1  | base dir:  /usr/src/app
myNodeApp_1  | dist folder:  /usr/src/app/dist

当我转到 https://my.url.example.com/myNodeApp 时,我得到:

cannot GET /myNodeApp

现在我怀疑这可能与日志显示它使用 /usr/src/app 作为基本目录(以及 /usr/src/app/dist 作为 dist 文件夹)的事实有关。但我从未指定这一点。当我在本地计算机上查看这些文件夹时,它们不存在。

关于如何让它发挥作用的任何想法?

【问题讨论】:

    标签: node.js docker-compose traefik


    【解决方案1】:

    您没有提供您的位置Dockerfile

    修改你的docker-compose.yml

    services:
        myNodeApp:
          container_name: myNodeApp
          build:
              context: ./www/app
    

    删除图片

    image: node:14
    

    Further reference

    【讨论】:

    • 很遗憾我仍然遇到同样的错误,不过我会用这个修改来更新我的代码
    • 什么是docker-compose up 现在登录?
    • 同样的输出:serving on port: 3000; base dir: /usr/src/app/; dist folder: /usr/src/app/dist
    • 使用docker-compose up --remove-orphans --build
    • 哦,这是进步!现在的输出是:serving on port: 3000; base dir: /home/myUsername/myProjectDir/www/app; dist folder: /home/myUsername/myProjectDir/www/app/dist。这似乎实际上反映了我的文件结构。可悲的是我仍然无法获得
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-06
    • 1970-01-01
    • 2015-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多