使用 Docker Compose 设置主机卷时出现问题
Having issues setting up a host volume with Docker Compose
我正在尝试为 Docker 和 Elixir 建立一个 test/intro 小项目。我想要它,以便主机和容器都可以访问我项目目录中的 src 文件夹。
Docker 撰写文件
version: "3"
services:
webapp:
build:
context: .
dockerfile: ./webapp.Dockerfile
ports:
- 80
#depends_on:
#- db
volumes:
- ./src:/srv/project
environment:
- DEPLOYMENT=development
# db:
# image: postgres:13.1-alpine
# volumes:
# - db-volume:/var/lib/postgresql/data
# volumes:
# db-volume:
Docker文件
FROM elixir:1.13-alpine
WORKDIR /srv/project
RUN pwd
RUN ls -la
RUN elixir test.exs
我添加了 pwd 和 ls -la 只是为了调试。它们显示我在正确的目录中并且这里没有文件。我能够复制文件并且一切正常,但显然这不是我想要的。我尝试删除 src 文件夹和 运行 它,然后 src 文件夹又回来了。我尝试 运行 touch test.txt 并且文件出现在容器中但没有出现在主机上。
我在这里搞砸了什么?提前致谢。
docker 构建首先是 运行,然后生成的图像由 docker-compose 实例化,您永远不会看到从 [=12= 共享的文件]-compose bind mount in the docker build(在构建步骤中不使用它们),如果 Dockerfile 中没有 COPY,运行 ls -la 将始终不显示任何内容。
我正在尝试为 Docker 和 Elixir 建立一个 test/intro 小项目。我想要它,以便主机和容器都可以访问我项目目录中的 src 文件夹。
Docker 撰写文件
version: "3"
services:
webapp:
build:
context: .
dockerfile: ./webapp.Dockerfile
ports:
- 80
#depends_on:
#- db
volumes:
- ./src:/srv/project
environment:
- DEPLOYMENT=development
# db:
# image: postgres:13.1-alpine
# volumes:
# - db-volume:/var/lib/postgresql/data
# volumes:
# db-volume:
Docker文件
FROM elixir:1.13-alpine
WORKDIR /srv/project
RUN pwd
RUN ls -la
RUN elixir test.exs
我添加了 pwd 和 ls -la 只是为了调试。它们显示我在正确的目录中并且这里没有文件。我能够复制文件并且一切正常,但显然这不是我想要的。我尝试删除 src 文件夹和 运行 它,然后 src 文件夹又回来了。我尝试 运行 touch test.txt 并且文件出现在容器中但没有出现在主机上。
我在这里搞砸了什么?提前致谢。
docker 构建首先是 运行,然后生成的图像由 docker-compose 实例化,您永远不会看到从 [=12= 共享的文件]-compose bind mount in the docker build(在构建步骤中不使用它们),如果 Dockerfile 中没有 COPY,运行 ls -la 将始终不显示任何内容。