我正在尝试将我的角应用程序停靠,并且当我运行容器时,我收到错误(“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,但是当我要运行它时,我收到了上面的错误。
docker运行到带有centos操作系统的远程服务器。我认为简单的解决方案是更改启动脚本的权限,但我不知道我该怎么做。我会感激任何帮助。
答案 0 :(得分:1)
我找到了解决方案,只需在Dockerfile中添加以下行
即可 Run chmod 775 app/node_modules/.bin/ng
Run chmod 775 app/node_modules/.bin/ng.cmd
发生错误是因为我没有给theese脚本许可。
答案 1 :(得分:1)
在将以下两个步骤添加到docker文件之后,我能够启动该应用程序。
最终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>