【发布时间】:2017-06-15 07:10:35
【问题描述】:
我安装了yarn,然后我想使用下一个 Dockerfile 执行它:
FROM ubuntu:trusty
....
USER node
RUN npm install -g yarn
RUN ["/bin/bash", "-c","yarn install"]
但它失败了:
/bin/bash: yarn: command not found
ERROR: Service 'falink-frontend4' failed to build: The command '/bin/bash -c yarn install' returned a non-zero code: 127
我只是尝试使用下一个:
FROM ubuntu:trusty
....
USER node
RUN npm install -g yarn
RUN yarn install
但它失败了:
/bin/sh: 1: yarn: not found
ERROR: Service 'falink-frontend4' failed to build: The command '/bin/sh -c yarn install' returned a non-zero code: 127
然后我使用docker exec -it XXXXX /bin/bash 连接到容器,运行yarn install,它工作正常。当我在 docker 容器中访问时,我使用 node 用户,就像在 Dockerfile 上一样。
这是我输入的 Dockerfile:
FROM ubuntu:trusty
# Create app directory
RUN mkdir -p /usr/src/app
#use mirrors for faster apt downloads no matter where the machine that builds the image is
RUN echo "deb mirror://mirrors.ubuntu.com/mirrors.txt trusty main restricted universe multiverse" > /etc/apt/sources.list; \
echo "deb mirror://mirrors.ubuntu.com/mirrors.txt trusty-updates main restricted universe multiverse" >> /etc/apt/sources.list; \
echo "deb mirror://mirrors.ubuntu.com/mirrors.txt trusty-backports main restricted universe multiverse" >> /etc/apt/sources.list; \
echo "deb mirror://mirrors.ubuntu.com/mirrors.txt trusty-security main restricted universe multiverse" >> /etc/apt/sources.list
#install required software before using nvm/node/npm/bower
RUN apt-get update && apt-get install -y libfreetype6 libfontconfig curl git python build-essential
#add user node and use it to install node/npm and run the app
RUN useradd --home /home/node -m -U -s /bin/bash node
#allow some limited sudo commands for user `node`
RUN echo 'Defaults !requiretty' >> /etc/sudoers; \
echo 'node ALL= NOPASSWD: /usr/sbin/dpkg-reconfigure -f noninteractive tzdata, /usr/bin/tee /etc/timezone, /bin/chown -R node\:node /myapp' >> /etc/sudoers;
#run all of the following commands as user node from now on
USER node
RUN curl https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash
#change it to your required node version
ENV NODE_VERSION 6.11.0
#needed by nvm install
ENV NVM_DIR /home/node/.nvm
#install the specified node version and set it as the default one, install the global npm packages
RUN . ~/.nvm/nvm.sh && nvm install $NODE_VERSION && nvm alias default $NODE_VERSION && npm install -g yarn && npm install -g phantomjs@1.9.20 koa@2.0.0 koa-static@2.0.0 koa-convert@1.2.0 koa-route koa-connect-history-api-fallback koa-body-parser fs@0.0.2 axios lodash moment
ADD ./Falink_front/run_all.sh /run_all.sh
COPY ./Falink_front/webapp /myapp
ADD ./Falink_front/scrapping.js /code/scrapping.js
ADD ./Falink_front/package.json /code/package.json
COPY ./Falink_front/public /code/public
COPY ./Falink_front/src /code/src
ADD ./Falink_front/yarn.lock /code/yarn.lock
USER root
RUN chown -R node:node /code
USER node
RUN ["/bin/bash", "-c","yarn install"]
可能是什么问题?
【问题讨论】:
标签: node.js docker dockerfile yarnpkg