繁体   English   中英

与Docker一起部署Node.js Web应用程序

[英]Deploying node.js web app along with docker

我们有一个node.js Web应用程序,我们已经将它部署在具有docker的服务器上。 它在节点版本0.10.25上正常工作。 但是现在我已经决定它可以在最新版本的节点6.5.0上运行

为此,我修改了docker文件,如下所示

FROM ubuntu:14.04
RUN echo 'deb http://security.ubuntu.com/ubuntu trusty-security main' | sudo tee -a /etc/apt/sources.list
RUN sudo apt-get update
RUN sudo apt-get install  linux-libc-dev  curl  git-core krb5-multidev libkrb5-dev -y
RUN sudo curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
RUN sudo apt-get install  nodejs -y
RUN sudo ln -sf /usr/bin/nodejs /usr/bin/node
RUN ["/bin/bash", "-c", "node -v"]
RUN sudo npm cache clean
RUN sudo npm install -g bower -y
RUN sudo npm install -g gulp -y
#RUN sudo npm install -g node-sass
#RUN sudo npm install -g eslint -y
#RUN sudo npm install -g htmllint -y
RUN cd /root; git clone -b masterclone  https://consultancy:Admin23@github.com/newapp/web.git
RUN cd /root/web; sudo npm install; sudo bower install --allow-root; gulp clean-build-app-prod
EXPOSE 8000
CMD cd /root/web; NODE_ENV=production node server.js

除了下面的那行,一切都很好,我猜是造成问题的原因

   "The command '/bin/sh -c cd /root/web; sudo npm install; sudo bower install --allow-root; gulp clean-build-app-prod' returned a non-zero code: 1"

使用官方节点图像。 这里是一个示例文件。

FROM node:6.5

# Enviroment variables
ENV NPM_CONFIG_LOGLEVEL warn
ENV USER node
ENV HOMEDIR /data

# add user node and change dir working dir
RUN useradd -ms /bin/bash ${USER}
RUN mkdir -p ${HOMEDIR}
WORKDIR ${HOMEDIR}

# install all dependencies
COPY package.json ./
RUN npm install --production

# add node content
COPY . .

USER node
EXPOSE 8000

CMD ["npm", "start"]

使文件基于官方NodeJS映像可能更简单。 对于v6.5,这意味着FROM ubuntu:14.04变为FROM node:6.5

另外,您可能不想使用WORKDIR /root/web来更改工作目录,而不是一遍又一遍地执行RUN cd /root/web WORKDIR /root/web

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM