构建docker镜像任务会导致VSTS错误

时间:2018-01-29 12:46:13

标签: javascript angular azure docker azure-devops

我正在关注 this Microsoft tutorial关于如何使用Docker在Azure上容纳和部署Angular应用程序。

我遇到了一个未在本教程中解决的独特问题。每次构建到达build an image任务时,它都会失败并出现以下错误。

2018-01-29T12:37:28.3169577Z [command]/usr/local/bin/docker build -f 
/opt/vsts/work/1/s/Dockerfile -t iponam.azurecr.io/my-angular-app:197 
/opt/vsts/work/1/s
2018-01-29T12:37:28.7630517Z Sending build context to Docker daemon 
593.4 kB
2018-01-29T12:37:28.7639048Z 
2018-01-29T12:37:28.7859042Z Step 1/3 : FROM nginx
2018-01-29T12:37:30.3172506Z latest: Pulling from library/nginx
2018-01-29T12:37:30.3188560Z e7bb522d92ff: Pulling fs layer
2018-01-29T12:37:30.3204163Z 6edc05228666: Pulling fs layer
2018-01-29T12:37:30.3219390Z cd866a17e81f: Pulling fs layer
2018-01-29T12:37:30.3279280Z cd866a17e81f: Download complete
2018-01-29T12:37:30.3294450Z e7bb522d92ff: Verifying Checksum
2018-01-29T12:37:30.3310189Z e7bb522d92ff: Download complete
2018-01-29T12:37:30.3511653Z 6edc05228666: Verifying Checksum
2018-01-29T12:37:30.3529571Z 6edc05228666: Download complete
2018-01-29T12:37:32.1518557Z e7bb522d92ff: Pull complete
2018-01-29T12:37:33.4982718Z 6edc05228666: Pull complete
2018-01-29T12:37:33.6163338Z cd866a17e81f: Pull complete
2018-01-29T12:37:33.6365600Z Digest: 
sha256:285b49d42c703fdf257d1e2422765c4ba9d3e37768d6ea83d7fe2043dad6e63d
2018-01-29T12:37:33.6540818Z Status: Downloaded newer image for 
nginx:latest
2018-01-29T12:37:33.6558500Z  ---> 3f8a4339aadd
2018-01-29T12:37:33.6577887Z Step 2/3 : COPY dist /usr/share/nginx/html
2018-01-29T12:37:33.6595536Z COPY failed: stat 
/var/lib/docker/tmp/docker-builder545265281/dist: no such file or 
directory
2018-01-29T12:37:33.6780204Z ##[error]COPY failed: stat 
/var/lib/docker/tmp/docker-builder545265281/dist: no such file or 
directory
2018-01-29T12:37:33.6855716Z ##[error]/usr/local/bin/docker failed with
return code: 1

根据教程,这是在我无法访问的托管linux代理上运行以检查文件夹结构。基本上正在发生的事情是我的Dockerfile(下面)是拉动nginx图像,使用ng build prod构建角度应用程序,然后我尝试将COPY dist文件夹放入/usr/share/nginx/html 1}}。这是Dockerfile,它也与教程中的相同:

FROM nginx
COPY dist /usr/share/nginx/html
EXPOSE 80

我花了无数个小时试图调试并理解这个问题。任何帮助将非常感激。谢谢!

更新

成功执行run build后,我看不到dist目录的输出位置。我检查机器上的每个地方都没有运气。在我的本地计算机上,dist将出现在项目文件夹的根目录中。

2 个答案:

答案 0 :(得分:0)

好吧,首先,你可以检查文件夹结构,你可以在建立docker之前添加一个Shell脚本步骤,并执行类似ls -Rla的操作,这是一个黑客,无疑是一个工作的。

至于你的错误,它表明工作目录下没有这样的文件(dist)。同样,您可以做的是验证此文件位于repo的根目录中,或使用ls hack来找到该文件。您还应检查是否未更改docker build步骤的默认工作目录。如果您这样做,则需要指定相对于工作目录的dist文件的路径。

答案 1 :(得分:0)

在NPM构建任务(命令和参数)中使用此命令:

run build -- -op dist