我们有一个node.js网络应用程序。我们已经使用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"
答案 0 :(得分:1)
使用官方节点图片。这是一个示例文件。
private void YourMethod()
{
Process("[txtItalic]This is italic[/txtItalic], this is normal, [txtBold]Bold Text[/txtBold] and now [txtUnderline]Underlined Text[/txtUnderline]. The end.");
}
private void Process(string textWithTags)
{
MatchCollection matches = Regex.Matches(textWithTags, @"\[(\w*)\](.*)\[\/\1\]");
int unformattedStartPosition = 0;
int unformattedEndPosition = 0;
foreach (Match item in matches)
{
unformattedEndPosition = textWithTags.IndexOf(item.Value);
// Add unformatted text.
AddText(textWithTags.Substring(unformattedStartPosition, unformattedEndPosition - unformattedStartPosition), FontStyle.Regular);
// Add formatted text.
FontStyle style = GetStyle(item.Groups[1]);
AddText(item.Groups[2].Value, style);
unformattedStartPosition = unformattedEndPosition + item.Value.Length;
}
AddText(textWithTags.Substring(unformattedStartPosition), FontStyle.Regular);
}
private FontStyle GetStyle(Group group)
{
switch (group.Value)
{
case "txtItalic":
return FontStyle.Italic;
case "txtBold":
return FontStyle.Bold;
case "txtUnderline":
return FontStyle.Underline;
default:
return FontStyle.Regular;
}
}
private void AddText(string text, FontStyle style)
{
if (text.Length == 0)
return;
richTextBox.SelectionFont = new Font(richTextBox.SelectionFont, style);
richTextBox.AppendText(text);
}
答案 1 :(得分:0)
将文件基于official NodeJS image可能更简单。对于v6.5,这意味着FROM ubuntu:14.04
变为FROM node:6.5
。
此外,您可能希望使用RUN cd /root/web
更改工作目录,而不是反复执行WORKDIR /root/web
。