docker -составление общих томов между сервисами - PullRequest
1 голос
/ 14 января 2020

Я хотел бы поделиться файлами из одного сервиса в другой. Я делаю короткий пример.

  • Docker -compose.yml
  • mobile:
    • dockerfile
    • app.apk
  • web:
    • dockerfile

docker -compose.yml

version: "3.7"

services:
  web:
    build: ./web
    depends_on: 
      - mobile
    volumes:
      - data-volume:/var/lib/shared

  mobile:
    build: ./mobile
    volumes:
      - data-volume:/var/lib/shared

volumes:
  data-volume:

Dockerfile. yml (мобильный)

FROM node:alpine AS mobile

COPY app.apk /var/lib/shared

RUN ls /var/lib/shared

Dockerfile.yml (веб)

FROM node:alpine AS web

RUN ls /var/lib/shared

Поэтому я хочу видеть app.apk из мобильного сервиса в веб-сервисе.

I попробуйте использовать тома в docker -compose, но он не работает. Я пытался разобраться часами.

Кто-то знает, как это сделать?

1 Ответ

2 голосов
/ 14 января 2020

файл Docker выполняется первым. Затем compose-файл переопределяет общую папку. Вы не можете получить доступ к томам в докер-файлах.

  • Когда вы впервые создали docker -контейнер, ваш app.apk копируется в docker -изображение.
  • Затем compose запускает контейнер и монтирует новый ( и, вероятно, пустая) папка в /var/lib/shared.
  • Тогда старое содержимое / var / lib / shared «затмевается» новым, и вы больше не можете получить доступ к старому содержимому.

решение : скопировать приложение в том после запуска контейнера.

с помощью docker exec -it <container_name> bash вы можете запустить оболочку в контейнере после ее запуска , Вы можете найти имя с помощью docker ps.

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