簡體   English   中英

Docker不是掛載目錄嗎? “OCI 運行時創建失敗:container_linux.go:346:沒有這樣的文件或目錄:未知”

[英]Docker isn't mounting the directory? "OCI runtime create failed: container_linux.go:346: no such file or directory: unknown"

在我的帶有 Docker 工具箱的 Windows 10 家用計算機上,Docker 在安裝驅動器時遇到問題。 我已經在 entrypoint.sh 文件上運行了 dos2unix。

完整的錯誤是這樣的:

ERROR: for users  Cannot start service users: OCI runtime create failed: container_linux.go:346: starting container process caused "exec: \"/usr/src/app/entrypoint.sh\": stat /usr/src/app/entrypoint.sh: no such file or directory": unknown

我的 docker-compose.yml:

version: '3.7'

services:

  users:
    build:
      context: ./services/users
      dockerfile: Dockerfile
    entrypoint: ['/usr/src/app/entrypoint.sh']
    volumes:
      - './services/users:/usr/src/app'
    ports:
      - 5001:5000
    environment:
      - FLASK_ENV=development
      - APP_SETTINGS=project.config.DevelopmentConfig
      - DATABASE_URL=postgresql://postgres:postgres@users-db:5432/users_dev
      - DATABASE_TEST_URL=postgresql://postgres:postgres@users-db:5432/users_test
    depends_on:
      - users-db

奇怪的是,當我注釋掉“卷”部分時,它起作用了。 但我希望將來能夠掛載卷。

目錄結構可以這樣看:

D:\flask-react-auth
│   .gitignore
│   .gitlab-ci.yml
│   docker-compose.yml
│   README.md
│   release.sh
│   
└───services
    │   
    └───users
        │   .coveragerc
        │   .dockerignore
        │   Dockerfile
        │   Dockerfile.prod
        │   entrypoint.sh
        │   manage.py
        │   requirements-dev.txt
        │   requirements.txt
        │   setup.cfg
        │   tree.txt
        │   
        └───project
            │   config.py
            │   __init__.py
            │   
            ├───api
            │   │   ping.py
            │   │   __init__.py
            │   │   
            │   └───users
            │           admin.py
            │           crud.py
            │           models.py
            │           views.py
            │           __init__.py
            │           
            ├───db
            │       create.sql
            │       Dockerfile
            │       
            └───tests
                    conftest.py
                    pytest.ini
                    test_admin.py
                    test_config.py
                    test_ping.py
                    test_users.py
                    test_users_unit.py
                    __init__.py

我也將D:\flask-react-auth\添加到 virtualbox 上的“共享文件夾”。

答案對我來說似乎很明顯:

當您按原樣運行代碼時 * 它會將當前工作目錄掛載到“/usr/src/app”。 * 當前工作目錄沒有文件“entrypoint.sh”。 * 它試圖運行 '/usr/src/app/entrypoint.sh' 但它不在那里,所以它失敗了。

當您注釋掉那個 volume mount * 我假設圖像已經有 '/usr/src/app/entrypoint.sh' 所以它可以正常工作。

我認為您可能應該更改安裝代碼

    volumes:
      - '.:/usr/src/app'

    volumes:
      - './services/users:/usr/src/app'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM