Dockerfile:Windows 容器上的复制命令失败并显示“访问被拒绝”

问题描述 投票:0回答:1

我正在尝试运行一个用 php、js、html 和 Selenium 实现的 Web 应用程序来测试功能。我使用 python 脚本和 pytest 来针对 Web 应用程序运行 selenium 测试。 Web 应用程序已使用 windows/servercore:ltsc2019 基础映像和 xampp 应用程序进行了 docker 化。如果第一次构建 dockerfile 就会成功。但是,如果完成了一些更改并且必须重建容器,我会收到以下错误:

Status: failed to copy files: failed to copy directory: chtimes \\?\Volume{06ac6f98-32bd-4e73-b16b-f982f49c7bd6}\xampp\htdocs\img: Access denied

在此 Dockerfile 步骤:

Step 2/7 : COPY . C:\\xampp\\htdocs

我正在使用已经 Docker 化的 Web 应用程序(包括 docker-compose)和现有的 gitlab 管道。将 selenium 和 python 服务添加到 docker-compose 后,我发现它们仅在 Linux 容器上可用,因此我将 docker 引擎切换为实验性以使用混合模式。这对于我工作的电脑来说工作得很好(我在那里测试过)。但后来我在我的家用电脑上使用了相同的 docker-compose 文件,并收到了上面的错误。同样,在运行管道的 gitlab-runner 上,稍微修改管道后也发生了相同的错误(添加了第 2-4 点)。

  1. 运行 Web 应用程序容器
docker-compose -f ./docker/stage/docker-compose-staging.yml --compatibility up --build -d
  1. 使用 powershell 脚本将守护进程切换到 Linux 容器
./docker-e2e-tests/SwitchDaemon.ps1
  1. 运行测试容器(Selenium、python)
docker-compose -f ./docker-e2e-tests/docker-compose.yml --compatibility up --build -d
  1. 使用 powershell 脚本将守护进程切换回 Windows 容器
./docker-e2e-tests/SwitchDaemon.ps1

这里的结果相同。第一次还好。第二次我尝试将更改复制到容器中(步骤 1)时,我得到了与上面相同的错误。现在最糟糕的问题是,管道根本不再运行。如果我删除步骤 2-4,我现在甚至会遇到同样的错误。

docker docker-compose dockerfile docker-for-windows
1个回答
0
投票

我也有同样的错误。这个问题解决了吗?请帮忙解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.