Docker не монтирует каталог? «Ошибка создания среды выполнения OCI: container_ linux. go: 346: нет такого файла или каталога: неизвестно» - PullRequest
0 голосов
/ 05 мая 2020

На моем Windows 10 домашнем компьютере с Docker Toolbox, Docker не может установить диски. Я уже запускал dos2 unix в точке входа. sh файл.

Полная ошибка такая:

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

My 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\ в 'Общие папки' на виртуальный бокс.

1 Ответ

0 голосов
/ 05 мая 2020

Ответ кажется мне очевидным:

Когда вы запускаете код как есть *, он монтирует текущий рабочий каталог в '/ usr / src / app'. * В текущем рабочем каталоге нет файла «точка входа. sh». * Он пытается запустить '/usr/src/app/entrypoint.sh', но его там нет, поэтому он терпит неудачу.

Когда вы комментируете это монтирование тома * Я предполагаю, что образ уже имеет '/ usr / src / app / entrypoint. sh ', так что он просто работает.

Я думаю, вам, вероятно, следует изменить код установки с

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

на

    volumes:
      - './services/users:/usr/src/app'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...