对于我的项目,我做了以下
Dockerfile
,以便为使用express.js应用程序开发node.js奠定基础:
FROM node:alpine
MAINTAINER "Desyllas Dimitrios"
ENV NEO4J_HOST=""
ENV NEO4J_USER=""
ENV NEO4J_PASSWORD=""
ENV MONGO_CONNECTION_STRING=""
ENV LOGS_DIR="/var/log/data_map"
COPY ./docker_scripts/entrypoint_dev.sh /usr/local/bin/entrypoint.sh
RUN chmod +x /usr/local/bin/entrypoint.sh &&\
chown root:root /usr/local/bin/entrypoint.sh &&\
mkdir -p /opt/map &&\
mkdir -p /var/log/data_map &&\
chmod 0666 /var/log/data_map &&\
npm install nodemon -g
EXPOSE 7474
VOLUME /var/log/data_map
VOLUME /opt/map
WORKDIR /opt/map
ENTRYPOINT ["nodemon src/server.js"]
但是在我的项目中,我有一个包含树枝模板的文件夹,该文件夹是
src/views
文件夹。在我的应用程序中,我配置了树枝模板的使用,如下所示:
const express=require('express');
const app=express();
app.set('views', __dirname + '/views');
app.set('view engine', 'twig');
app.set('twig options', {
strict_variables: false
});
在我使用的路线上:
router.get('/my-route',function(req,res,next){
res.render('my-route.html.twig',{
'title': "Main Panel"
});
});
我的问题是,即使模板已更改,我将如何使我的 docker 映像重新运行应用程序?在当前的使用情况下,当模板发生更改以重新加载新模板时,我无法重新启动我的应用程序。
请记住,我使用
nodemon
运行我的 NodeJS 应用程序,以便在开发软件时在文件更改期间重新运行该应用程序。
我想要做的是,当我更改前端资产的模板时,在容器内重新启动我的应用程序,就像我更改服务器端代码时重新启动它一样。
Nodemon 允许您指定 其他扩展来观看,而不仅仅是 javascript。
尝试改变
ENTRYPOINT ["nodemon src/server.js"]
至
ENTRYPOINT ["nodemon -e js,twig src/server.js"]
您可能需要在您的用例的参数中传递更多文件扩展名。