如何使用 Docker Compose 将目录从一个容器共享到另一个容器?

问题描述 投票:0回答:1
我开发的

dockerized Node.js 应用程序包含

pb_migrations
目录。在下面的 Docker Compose 文档中,您可以看到它依赖于 PocketBase 的 dockerized 版本。

我想要实现的是,PB 容器在启动时应该在其

/app/pb_migrations
路径上具有可用的
node
容器中的
/pb_migrations
目录。

我尝试使用命名卷来执行此操作,但 PB 容器的目录为空。我不想每次都单独复制目录并从主机挂载它,并且希望只使用

docker-compose.yml
文档来运行它。

version: '3.7'
services:
  pocketbase:
    image: spectado/pocketbase:0.19.2
    container_name: pocketbase
    restart: unless-stopped
    ports:
      - '8090:80'
    volumes:
      - pb_data:/pb_data
      - pb_migrations:/pb_migrations/
  app:
    image: app:latest
    container_name: app
    restart: unless-stopped
    env_file: .env
    volumes:
      - pb_migrations:/app/pb_migrations/
    ports:
      - '$PORT:$PORT'
    depends_on:
      - pocketbase
volumes:
  pb_data:
  pb_migrations:
docker docker-compose pocketbase
1个回答
0
投票

要使用 Docker Compose 使应用程序容器中的

/app/pb_migrations
目录可在
/pb_migrations
容器中的
pocketbase
路径中使用,您可以使用绑定挂载。绑定挂载让您可以直接将目录从一个位置(例如主机或另一个容器)连接到另一个容器。

https://docs.docker.com/compose/compose-file/compose-file-v3/#volumes

你可以查看这个答案

© www.soinside.com 2019 - 2024. All rights reserved.