PermissionError: [WinError 5] Access Denied: [4776] Failed to execute script docker-compose when running docker-compose up
PermissionError: [WinError 5] Access Denied: [4776] Failed to execute script docker-compose when running docker-compose up
我构建了一个测试应用程序以更好地理解 FastAPI 和 sqlalchemy 的概念
我想成为能够提供 docker-compose.yml 的应用程序,它可以用于 运行 我的解决方案,只需
做 docker-compose up
但是我得到了
Building al_test
Traceback (most recent call last):
File "docker-compose", line 3, in <module>
File "compose\cli\main.py", line 67, in main
File "compose\cli\main.py", line 126, in perform_command
File "compose\cli\main.py", line 1070, in up
File "compose\cli\main.py", line 1066, in up
File "compose\project.py", line 615, in up
File "compose\service.py", line 362, in ensure_image_exists
File "compose\service.py", line 1125, in build
File "site-packages\docker\api\build.py", line 160, in build
File "site-packages\docker\utils\build.py", line 30, in tar
File "site-packages\docker\utils\build.py", line 49, in exclude_paths
File "site-packages\docker\utils\build.py", line 214, in rec_walk
File "site-packages\docker\utils\build.py", line 214, in rec_walk
File "site-packages\docker\utils\build.py", line 184, in rec_walk
PermissionError: [WinError 5] Отказано в доступе: '\\?\C:\$Recycle.Bin\S-1-5-18'
[4776] Failed to execute script docker-compose
我的docker文件
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.7
COPY ./requirements.txt /requirements.txt
RUN pip install -r /requirements.txt
COPY . /app
WORKDIR /app
ADD . /app
ENV DATABASE_URL="postgres://superuser:superuser@localhost:5433/al-test-3"
EXPOSE 8000
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
和docker-compose.yml
version: '3.8'
services:
al_test:
build: /
ports:
- 5001:80
postgresql:
image: "bitnami/postgresql:latest"
volumes:
- postgresql-data:/bitnami/postgresql
ports:
- "5446:5432"
environment:
- POSTGRESQL_DATABASE=al-test-3
- POSTGRESQL_USERNAME=superuser
- POSTGRESQL_PASSWORD=superuser
- POSTGRESQL_POSTGRES_PASSWORD=superuser
volumes:
postgresql-data:
TL;DR
我认为有问题:
build: /
要以本地文件夹作为上下文进行构建,您应该说
build: ./
究竟发生了什么?
话虽如此,您的项目是如何构建的?你的 Dockerfile
在哪里?是吗
app
- some.py
Dockerfile
requirement.txt
docker-compose.yaml
从您的 docker-compose.yml
的角度来看,./
是它所在的文件夹。在 Unix 文件系统中,/
代表文件系统的 根目录;你会怎么称呼 C:\
.
构建时
我不确定 docker 是如何集成到 Windows 中的,但是 /
可能被翻译成某个地方您的 docker 恶魔没有阅读权限,在您编译期间引发此 PermissionError
。
在运行时间
您在尝试将各种文件夹装载到您的容器中时可能会遇到类似的权限问题。这是修复(当它发生时)
我构建了一个测试应用程序以更好地理解 FastAPI 和 sqlalchemy 的概念
我想成为能够提供 docker-compose.yml 的应用程序,它可以用于 运行 我的解决方案,只需
做 docker-compose up
但是我得到了
Building al_test
Traceback (most recent call last):
File "docker-compose", line 3, in <module>
File "compose\cli\main.py", line 67, in main
File "compose\cli\main.py", line 126, in perform_command
File "compose\cli\main.py", line 1070, in up
File "compose\cli\main.py", line 1066, in up
File "compose\project.py", line 615, in up
File "compose\service.py", line 362, in ensure_image_exists
File "compose\service.py", line 1125, in build
File "site-packages\docker\api\build.py", line 160, in build
File "site-packages\docker\utils\build.py", line 30, in tar
File "site-packages\docker\utils\build.py", line 49, in exclude_paths
File "site-packages\docker\utils\build.py", line 214, in rec_walk
File "site-packages\docker\utils\build.py", line 214, in rec_walk
File "site-packages\docker\utils\build.py", line 184, in rec_walk
PermissionError: [WinError 5] Отказано в доступе: '\\?\C:\$Recycle.Bin\S-1-5-18'
[4776] Failed to execute script docker-compose
我的docker文件
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.7
COPY ./requirements.txt /requirements.txt
RUN pip install -r /requirements.txt
COPY . /app
WORKDIR /app
ADD . /app
ENV DATABASE_URL="postgres://superuser:superuser@localhost:5433/al-test-3"
EXPOSE 8000
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
和docker-compose.yml
version: '3.8'
services:
al_test:
build: /
ports:
- 5001:80
postgresql:
image: "bitnami/postgresql:latest"
volumes:
- postgresql-data:/bitnami/postgresql
ports:
- "5446:5432"
environment:
- POSTGRESQL_DATABASE=al-test-3
- POSTGRESQL_USERNAME=superuser
- POSTGRESQL_PASSWORD=superuser
- POSTGRESQL_POSTGRES_PASSWORD=superuser
volumes:
postgresql-data:
TL;DR
我认为有问题:
build: /
要以本地文件夹作为上下文进行构建,您应该说
build: ./
究竟发生了什么?
话虽如此,您的项目是如何构建的?你的 Dockerfile
在哪里?是吗
app
- some.py
Dockerfile
requirement.txt
docker-compose.yaml
从您的 docker-compose.yml
的角度来看,./
是它所在的文件夹。在 Unix 文件系统中,/
代表文件系统的 根目录;你会怎么称呼 C:\
.
构建时
我不确定 docker 是如何集成到 Windows 中的,但是 /
可能被翻译成某个地方您的 docker 恶魔没有阅读权限,在您编译期间引发此 PermissionError
。
在运行时间
您在尝试将各种文件夹装载到您的容器中时可能会遇到类似的权限问题。这是修复(当它发生时)