Dockerize远程服务器中的Angular cli应用程序

时间:2018-03-24 07:12:27

标签: angular docker centos command-line-interface

我正在尝试将我的角应用程序停靠,并且当我运行容器时,我收到错误(“sh:1:ng:权限被拒绝”)。更具体的我的dockerfile是

   # Create image based on the official Node 6 image from dockerhub
   FROM node:8.10.0

   # Create a directory where our app will be placed
   RUN mkdir -p /app

   # Change directory so that our commands run inside this new directory
   WORKDIR /app

   # Copy dependency definitions
   COPY package.json /app

   # Install dependecies
   RUN npm install

   # Get all the code needed to run the app
   COPY . /app

   # Expose the port the app runs in
   EXPOSE 4200

   # Serve the app
   CMD ["npm", "start"]

首先,我成功创建了docker image,但是当我要运行它时,我收到了上面的错误。

enter image description here

docker运行到带有centos操作系统的远程服务器。我认为简单的解决方案是更改启动脚本的权限,但我不知道我该怎么做。我会感激任何帮助。

2 个答案:

答案 0 :(得分:1)

我找到了解决方案,只需在Dockerfile中添加以下行

即可
 Run chmod 775 app/node_modules/.bin/ng

 Run chmod 775 app/node_modules/.bin/ng.cmd

发生错误是因为我没有给theese脚本许可。

答案 1 :(得分:1)

在将以下两个步骤添加到docker文件之后,我能够启动该应用程序。

  1. 运行npm install -g angular / cli
  2. CMD ng服务-主机0.0.0.0

最终docker文件如下所示

FROM node:latest RUN mkdir -p /App WORKDIR /App COPY . /App RUN npm install -g @angular/cli RUN npm install EXPOSE 4200 CMD ng serve --host 0.0.0.0

**如何构建docker文件? **

  

docker build --rm -f "Dockerfile" -t <tag_name> .


如何运行docker映像

  

docker run -p 4200:4200 <image_id>