我正在关注 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
将出现在项目文件夹的根目录中。
答案 0 :(得分:0)
好吧,首先,你可以检查文件夹结构,你可以在建立docker之前添加一个Shell脚本步骤,并执行类似ls -Rla
的操作,这是一个黑客,无疑是一个工作的。
至于你的错误,它表明工作目录下没有这样的文件(dist
)。同样,您可以做的是验证此文件位于repo的根目录中,或使用ls
hack来找到该文件。您还应检查是否未更改docker build
步骤的默认工作目录。如果您这样做,则需要指定相对于工作目录的dist
文件的路径。
答案 1 :(得分:0)
在NPM构建任务(命令和参数)中使用此命令:
run build -- -op dist