2016-09-05 3 views
0

У нас есть веб-приложение node.js. Мы развернули его на сервере с докере. Его рабочий тон с узловой версией 0.10.25. Но сейчас я уже решил, что работать на последней версии узла 6.5.0Развертывание веб-приложения node.js вместе с докером

Для этого я изменил файл докер, который сейчас смотрит, как показано ниже

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:[email protected]/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" 

ответ

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"] 
0

Это, вероятно, проще основывать свой файл прочь official NodeJS image. Для v6.5 это означает, что FROM ubuntu:14.04 становится FROM node:6.5.

Кроме того, вместо того, чтобы делать RUN cd /root/web снова и снова, вы можете изменить рабочий каталог с помощью WORKDIR /root/web.

Смежные вопросы