Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
即使docker在构建映像时安装了angular cli ng命令,也找不到该命令_Docker_Dockerfile_Angular Cli - Fatal编程技术网

即使docker在构建映像时安装了angular cli ng命令,也找不到该命令

即使docker在构建映像时安装了angular cli ng命令,也找不到该命令,docker,dockerfile,angular-cli,Docker,Dockerfile,Angular Cli,我尝试为一个应用程序构建一个映像,该应用程序的控制器是angular cli。在使用ngbuild--prod命令的构建时,docker builder崩溃 我曾尝试在全局或本地文件夹上实现angular cli,但每次调用ng命令时,构建控制台都会说它无法在非angular cli应用程序的文件夹上构建 问题是docker build进程在右侧文件夹中运行ng build。这是我的docker文件 错误消息:命令'/bin/sh-c ng build--prod'返回一个非零代码:127 其他

我尝试为一个应用程序构建一个映像,该应用程序的控制器是angular cli。在使用
ngbuild--prod
命令的构建时,docker builder崩溃

我曾尝试在全局或本地文件夹上实现angular cli,但每次调用
ng
命令时,构建控制台都会说它无法在非angular cli应用程序的文件夹上构建

问题是docker build进程在右侧文件夹中运行
ng build
。这是我的docker文件

错误消息:
命令'/bin/sh-c ng build--prod'返回一个非零代码:127
其他错误消息:
/bin/sh:1:ng:未找到

FROM node:6.9.1

ENV DEBIAN_FRONTEND noninteractive
ADD ./ /opt/

RUN cd /opt/ && ls -l

### MYSQL
RUN apt-get update && apt-get install -y --no-install-recommends apt-utils \
  && apt-get install -y mysql-client libmysqlclient-dev \
  && apt-get clean \
  && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

# ORACLE
#INSTALL LIBAIO1 & UNZIP (NEEDED FOR STRONG-ORACLE)
RUN apt-get update \
  && apt-get install -y libaio1 \
  && apt-get install -y build-essential \
  && apt-get install -y unzip \
  && apt-get install -y curl

#ADD ORACLE INSTANT CLIENT
RUN mkdir -p opt/oracle
ADD ./oracle/linux/ .

RUN unzip instantclient-basic-linux.x64-12.1.0.2.0.zip -d /opt/oracle \
  && unzip instantclient-sdk-linux.x64-12.1.0.2.0.zip -d /opt/oracle  \
  && mv /opt/oracle/instantclient_12_1 /opt/oracle/instantclient \
  && ln -s /opt/oracle/instantclient/libclntsh.so.12.1 /opt/oracle/instantclient/libclntsh.so \
  && ln -s /opt/oracle/instantclient/libocci.so.12.1 /opt/oracle/instantclient/libocci.so

ENV LD_LIBRARY_PATH="/opt/oracle/instantclient"
ENV OCI_HOME="/opt/oracle/instantclient"
ENV OCI_LIB_DIR="/opt/oracle/instantclient"
ENV OCI_INCLUDE_DIR="/opt/oracle/instantclient/sdk/include"

RUN echo '/opt/oracle/instantclient/' | tee -a /etc/ld.so.conf.d/oracle_instant_client.conf && ldconfig

EXPOSE 30009

### SQL SERVER
RUN npm install sql-cli -g
RUN npm install @angular/cli -g
RUN npm install typescript -g
RUN npm install typings -g
RUN npm cache clean && rm -rf ~/.npm
RUN cd /opt/ 
RUN rm -rf node_modules
RUN ls -l
RUN npm install --production --unsafe-perm
RUN npm cache clean
RUN cd /opt/ && ls -l
RUN ng build --prod

# PM2
RUN npm install pm2 -g


ENV NODE_ENV=production

# UP app
CMD cd /opt/ \
&& pm2-docker start dist/server/app.js

在每个Dockerfile层中,当前目录都设置为WORKDIR,因此它会丢弃您
cd
中的任何内容。所以改变

RUN cd /opt/ && ls -l
RUN ng build --prod
致:

或:


另外,请确保npm目录位于您的“PATH”变量中。

我对Docker很陌生,昨天晚上开始使用它,我遇到了同样的问题

我没有使用ng build(当时我无法让它工作) 我在dockerfile中添加了以下run命令:

RUN npm run-script build
这是终端推荐的,它确实起了作用,允许我继续我的步骤来构建。 我不认为这是最佳实践?如有反馈,将不胜感激

RUN cd /opt/ && ng build --prod
RUN npm run-script build