首页 > 解决方案 > Docker:容器应该可以访问另一个容器的目录

问题描述

我需要访问从 docker 容器到另一个 docker 容器的目录。

在第一个容器中,我正在运行一个 nodeJS 应用程序,并且在tests/e2e文件夹中有我的 e2e 测试和 webdriverIO 的配置。此外,我不需要持久卷 - 就像我到目前为止所做的那样。只要两个容器都在运行,我只需要测试文件。

$ docker run
  --name app_stage
  --volume tests:/app/tests
  --detach
  app:stage

这是该应用程序的 Dockerfile

RUN mkdir -p /app
WORKDIR /app
COPY . /app
RUN npm install
RUN npm run build
EXPOSE 3000
ENV NODE_ENV production
CMD next start

在第二个容器中,我正在运行 webdriverIO,它需要获取存储在其中的第一个容器的测试和配置app/tests

$ docker run
  --rm
  --volumes-from app_stage
  webdriverio wdio

但这不起作用,因为我在第二个容器中看不到所需的目录。

标签: docker

解决方案


首先,VOLUME在 dockerfile 中指定变量:

RUN mkdir -p /app
WORKDIR /app
COPY . /app
RUN npm install
RUN npm run build
EXPOSE 3000
ENV NODE_ENV production
VOLUME /app/tests
CMD next start    

使用您的第一个命令启动 app_stage 容器,然后使用第二个命令启动 webdriverio 容器。


推荐阅读