nodejs express在作为docker守护程序运行时不会使用ect模板引擎来呈现html页面

我试图运行一个节点js应用程序,在ECT模板引擎上渲染HTML页面的Docker,情况是,它工作得很好,一旦与下面的命令运行的容器直接交互,并在其中运行节点。

docker run -p 80:5000 -it abdullahshahin/admin-panel bash 

但是当我把它作为一个守护进程来运行的时候,express表示下面的错误

错误:无法在视图目录“/ views”中查找视图“索引”

以下是ect的声明

 var ectRenderer = ECT({ watch: true, root:'/var/njs/html/views', ext : '.ect' }); 

另外,我试过这个

root: __dirname + '/views' and this root:'./views' ,没有什么帮助。

下面是主要的应用程序文件代码,我正在使用这个MVC

 // DECLARE VARIABLES var express = require('express'); var instance = express(); var parser = require('body-parser'); instance.use(parser({strict:false})); var commander = require('commander'); var ECT = require('ect'); var ectRenderer = ECT({ watch: true, root: __dirname + '/views', ext : '.ect' }); // PROMPTE USERS TO ENTER PORT commander.option('-p, --port <n>', 'Port to run server on',parseInt).parse(process.argv); if(!commander.port) { console.log("Please provide a port number"); process.exit(1); } // EXPRESS USES instance.set('view engine', 'ect'); instance.engine('ect', ectRenderer.render); // EXPRESS TO USE ROUTES require("./routes/routes.js")(instance); //instance.use(parser); // EXPRESS TO USE PROMPTED PORT instance.listen(commander.port); 

下面是Dockerfile的内容

 FROM ubuntu RUN apt-get update RUN apt-get --yes install software-properties-common RUN apt-add-repository -y ppa:chris-lea/node.js RUN apt-get update RUN apt-get --yes install nodejs COPY . /var/njs/html RUN cd /var/njs/html; npm install EXPOSE 1234 CMD node /var/njs/html/app.js -p 1234 

有没有人有这个想法?

我刚刚发现它,当我运行下面的容器时,我用daemon选项提到了工作目录

 docker run -p 80:1234 -w="/var/njs/html" -d abdullahshahin/admin-panel 

https://docs.docker.com/reference/run/#env-environment-variables