docker - Docker:容器应该可以访问另一个容器的目录

标签 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

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

最佳答案

首先,在您的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/

相关文章:

python - Docker 上的 Flask 应用程序 : Max retries exceeded with URL

docker - 如何缩小 Docker 磁盘镜像,但在 Docker for Mac 中保留卷?

Docker 在构建镜像时无法删除文件

docker - uvicorn 上的 FastApi 运行良好,但无法与 Docker 和 docker-compose 配合使用

python - 无法启动 docker-compose 并因无模块而失败

r - Docker、R 和 Shiny: 'unstable' 对 APT::Default-Release 无效

docker - 为什么 Docker 容器中的非卷数据在重新启动容器后仍然存在?

mysql - 在不停止 Docker 容器的情况下停止 Docker 中的 MySQL

docker - docker的supervisord的替代品

docker - 在主机上挂载开发 docker 容器目录