【问题标题】:PermissionError: [WinError 5] Access Denied: [4776] Failed to execute script docker-compose when running docker-compose upPermissionError: [WinError 5] Access Denied: [4776] 运行 docker-compose up 时无法执行脚本 docker-compose
【发布时间】:2021-01-29 22:31:06
【问题描述】:

我已经构建了一个测试应用程序来更好地理解 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:

【问题讨论】:

    标签: python windows docker docker-compose permissions


    【解决方案1】:

    TL;DR

    我认为有问题:

        build: /
    

    要使用本地文件夹作为上下文构建,你应该说

        build: ./
    

    到底发生了什么?

    话虽如此,您的项目结构如何?你的Dockerfile 在哪里?是吗

    app
        - some.py
    Dockerfile
    requirement.txt
    docker-compose.yaml
    

    docker-compose.yml 的角度来看,./ 是它所在的文件夹。在 Unix 文件系统中,/ 代表文件系统的根目录;你会怎么称呼C:\

    在构建时

    我不确定 docker 是如何集成到 Windows 中的,但 / 可能被翻译为您的 docker 恶魔无权阅读的某个地方,从而引发了 @987654331 @ 在你的编译过程中。

    在运行时

    在尝试将各种文件夹挂载到容器中时,您可能会遇到类似的正确问题。这是修复(当它发生时)

    【讨论】:

    • 是的,您的建议删除了权限错误,非常感谢!是的,结构绝对是你上面描述的
    • 很高兴我能帮上忙,@VladIvanyk。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    • 2023-03-09
    • 2019-08-28
    • 1970-01-01
    • 2018-12-18
    • 2023-01-22
    • 1970-01-01
    相关资源
    最近更新 更多