Docker -compose.yml Volummes: и команда -mount не те же результаты - PullRequest
1 голос
/ 03 августа 2020

Я больше недели искал эту проблему, но без решения. Я пытаюсь смонтировать том из docker -compose.yml Вот моя структура каталогов:

-docker-compose.yml
-api
  -dockerfile
-frontend
  -dockerfile
-models

Я хочу, чтобы модели использовались совместно службой api и службой внешнего интерфейса. Сначала я пытаюсь поместить модели в контейнер. В каталоге контейнера / usr / src / models вместе со всем его содержимым. Эта команда отлично работает

docker run -it --mount src="$(pwd)/models",target=/usr/src/models,type=bind -p 3000:3000 website_api

, и важно отметить, что она производит это, когда я проверяю контейнер docker в коде VS: website_api. json:

"Mounts": [
            {
                "Type": "bind",
                "Source": "/home/kevin/source/repos/cropwatch/website/models",
                "Target": "/usr/src/models"
            }
        ],

Это внутри файла json с множеством других вещей. однако, когда я запускаю свой docker -compose, он настраивается так:

version: "3.8"
services:
    api:
        container_name: api
        restart: always
        build:
            context: ./
            dockerfile: ./api/dockerfile
        ports:
            - "3000:3000"
            - "3001:3001"
        volumes:
            - type: bind
              source: "./models"
              target: "/usr/src/models"

путь монтирования в файле json отображается следующим образом:

"Mounts": [],

и каталог / usr / src / models в моем контейнере пуст ...

Значит, эти две вещи не делают того же, что я, казалось, думал раньше.

Есть идеи относительно того, что Я ошибаюсь в моем файле docker -compose.yml?

1 Ответ

1 голос
/ 03 августа 2020

Это должно сработать:

tree
.
├── api
│   └── dockerfile
├── docker-compose.yml
└── models
    └── someFile
cat docker-compose.yml 
version: "3.8"
services:
    api:
        container_name: api
        restart: always
        build:
            context: ./
            dockerfile: ./api/dockerfile
        volumes:
            - ./models:/usr/src/models

docker-compose up -d

docker exec 5ea0c49003f6 sh -c "ls -la /usr/src/models"
total 8
drwxr-xr-x 2 1000 1000 4096 Aug  3 20:09 .
drwxr-xr-x 1 root root 4096 Aug  3 20:15 ..
-rw-r--r-- 1 1000 1000    0 Aug  3 20:09 someFile
docker container inspect --format '{{.Mounts}}' 5ea0c49003f6
[{bind  /home/neo/so-playground/mounts-63236400/models /usr/src/models  rw true rprivate}]
...