I have a following Dockerfile:
FROM ubuntu:18.04
RUN mkdir app && cd app
WORKDIR app/
RUN apt-get update && apt-get install -y \
software-properties-common \
curl \
sudo \
&& curl -O https://hyperledger.github.io/composer/latest/prereqs-ubuntu.sh \
&& chmod u+x prereqs-ubuntu.sh \
&& ./prereqs-ubuntu.sh \
&& npm install -g \ # this line failed
&& yo \
composer-cli@0.20 \
composer-rest-server@0.20 \
generator-hyperledger-composer@0.20 \
composer-playground@0.20
CMD /bin/bash
The prereqs-ubuntu.sh is from https://github.com/hyperledger/composer/blob/master/packages/composer-website/jekylldocs/prereqs-ubuntu.sh.
However, it says /bin/sh: 1: npm: not found on the line npm install -g when I try to build the image. But npm is installed when running prereqs-ubuntu.sh already and can be ran successfully at the end of the file (npm --version).
Also, when I remove the npm-install part from the Dockerfile (shown below) and do docker run --name test -it myimage to see if npm is installed, but it is installed.
FROM ubuntu:18.04
RUN mkdir app && cd app
WORKDIR app/
RUN apt-get update && apt-get install -y \
software-properties-common \
curl \
sudo \
&& curl -O https://hyperledger.github.io/composer/latest/prereqs-ubuntu.sh \
&& chmod u+x prereqs-ubuntu.sh \
&& ./prereqs-ubuntu.sh \
CMD /bin/bash