Почему контейнер docker не может видеть объем в другом контейнере? - PullRequest
0 голосов
/ 08 марта 2020

У меня есть 2 контейнера, которые я запускаю, используя docker -состав. Первый, который я только что извлек из docker концентратора nginx: стабильный Второй, который я строю поверх php из концентратора

dockerfile

FROM composer:1.9.3
RUN mkdir /fatfree
RUN ["composer","require","bcosca/fatfree-core","--working-dir","/fatfree"]

FROM php:7.4-fpm
COPY --from=0 /fatfree /fatfree

Я также попытался VOLUME /fatfree в вышеуказанном файле, но безрезультатно.

docker -compose.yml

version: "3.7"

services:
  webserver:
    image: nginx:stable
    ports:
      - "80:8080"
    volumes:
      - ./www:/www
      - fatfree:/fatfree
    links:
      - php
  php:
    build:
      context: .
      dockerfile: dockerfile
    volumes:
      - ./www:/www
      - "fatfree:/fatfree"
volumes:
  fatfree:

Если я правильно интерпретировал документацию docker, мой www/index.php должен видеть все, что находится в / fatfree, но это не так. Сама папка отображается, но выглядит пустой.

Если я запускаю dockerfile в интерактивном режиме docker container run -i -t test bash, папка /fatfree существует, и в ней есть все файлы, которые я ожидаю.

Существует множество вопросов о стековом потоке, спрашивающих, как этого добиться, и все они, похоже, предполагают, что то, что я делаю, на самом деле нормально, но не работает, и я понятия не имею, почему. Любое предложение приветствуется.

1 Ответ

0 голосов
/ 08 марта 2020

Ваше отображение неверно.

Требуется:

volumes:
- /fatfree:/www

Первая запись /fatfree относится к пути на вашем хост-компьютере.

Вторая запись /www относится к пути в контейнере.

В моем примере каталог /fatfree вашего хоста (и его содержимое) будет сопоставлен с каталогом /www контейнера.

Изменить как желательно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...