可以在容器之间共享文件夹吗?

时间:2020-05-21 00:53:58

标签: docker docker-compose dockerfile

我想知道如何在容器之间共享应用程序文件夹。 我找到了有关“如何在容器和主机之间共享文件夹”的文章,但找不到“容器到容器”。

我想在后端编辑前端应用程序的代码,所以我需要共享文件夹。 <-这也是我的目标。

有解决方案吗?

我的配置就是这样

/
 - docker-compose.yml
|
 - backend application
  |
   _ Dockerfile
|
 -Frontend application
  |
   - Dockerfile

然后 docker-compose.yml就是这样

version: '3'
services:
 railsApp: #<- backend application
    build: .
    command: bundle exec rails s -p 5000 -b '0.0.0.0'
    volumes:
      - code_share:/var/web/railsApp
    ports:
      - "3000:3000"
  reactApp: #<- frontend application
    build: .
    command: yarn start
    volumes:
      - code_share:/var/web/reactApp
    ports:
      - "3000:3000"

volumes:
 code_share:

1 个答案:

答案 0 :(得分:2)

您现在已经在前端和后端都安装了named volume

根据您的配置,您的应用程序/var/web/railsApp/var/web/reactApp都将看到完全相同的内容。 因此,每当您在前端应用程序容器中写入/var/web/reactApp时,所做的更改也会反映在后端/var/web/railsApp

要实现所需的功能(在railsApp下有reactApp/var/web),请尝试将主机上的文件夹安装到两个容器中。 (确保您的应用程序正确地写入了各自的/var/web文件夹。

mkdir -p /var/web/railsApp /var/web/reactApp

然后调整您的撰写文件:

version: '3'
services:
 railsApp: #<- backend application
    build: .
    command: bundle exec rails s -p 5000 -b '0.0.0.0'
    volumes:
      - /var/web:/var/web
    ports:
      - "3000:3000"
  reactApp: #<- frontend application
    build: .
    command: yarn start
    volumes:
      - /var/web:/var/web
    ports:
      - "3000:3000"