使用 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 将始终不显示任何内容。