Docker-用于Angular应用程序的多阶段DockerFile。复制失败

时间:2018-09-03 03:00:51

标签: angular docker nginx dockerfile

我正在尝试通过使用以下多阶段DockerFile为我的角度应用程序创建自定义图像:

FROM node:8.11.2-alpine as node

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . .

RUN npm run build

FROM nginx:1.13.12-alpine
COPY --from=node . /dist/ /usr/share/nginx/html
COPY ./nginx.conf /etc/nginx/conf.d/default.conf

但是,当我尝试构建映像时,在控制台窗口中收到以下错误:

Step 8/9 : COPY --from=node . /dist/ /usr/share/nginx/html
COPY failed: stat 
/var/lib/docker/overlay2/be4bf1ad6bf693062d3bbcebf060281
e331c3135e3178068f3f9bf91113da200/merged/dist: no such file or directory

对于Docker和构建自己的Dockerfile来说,我还是一个相对较新的人,到目前为止,我尝试/研究的所有内容始终返回相同的错误消息。

我的应用程序的文件夹结构类似于以下内容:

--Docker-Compose.yml
--Angular App
  --ClientApp
    --Dockerfile
    --nginx.conf
    --package.json
    --src(folder)
      --index.html

实际构建所需的nginx-conf文件如下:

   server {
  listen 80;
  location / {
    root /usr/share/nginx/html;
    index index.html index.htm;
    try_files $uri $uri/ /index.html =404;
  }
}

还有其他人遇到过这个问题吗?解决这个问题的任何积极方向将不胜感激。仍在寻找答案,只是不确定目前还有什么尝试。

1 个答案:

答案 0 :(得分:0)

在这一行中,您有3个要复制的参数:COPY --from=node . /dist/ /usr/share/nginx/html

因此,您有./dist//usr/share/nginx/html。您应该只有两个,这可能就是它失败的原因。