我需要访问从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

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

最佳答案

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

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容器。

关于docker - Docker:容器应该可以访问另一个容器的目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53131817/

10-16 23:41
查看更多