如何使用docker compose装载主机目录~/路径/on/host";在运行主机时指定,而不是在docker compose文件中指定

如何使用docker compose装载主机目录~/路径/on/host";在运行主机时指定,而不是在docker compose文件中指定,docker,docker-compose,environment-variables,dockerfile,docker-volume,Docker,Docker Compose,Environment Variables,Dockerfile,Docker Volume,我想知道如何使用docker compose装载主机目录 目前我只是使用一个普通的Dockerfile,它工作得很好。当我运行容器时,我只指定主机上的路径和容器上的路径 docker run -d -p 3000:3000 -v ~/path/on/host:/path/on/container my-container 我想使用docker compose实现这一点,但我不确定它是如何工作的。下面是我的docker compose version: '3' services: my-a

我想知道如何使用docker compose装载主机目录

目前我只是使用一个普通的Dockerfile,它工作得很好。当我运行容器时,我只指定主机上的路径和容器上的路径

docker run -d -p 3000:3000 -v ~/path/on/host:/path/on/container my-container
我想使用docker compose实现这一点,但我不确定它是如何工作的。下面是我的docker compose

version: '3'

services:
  my-app:
    build:
      context: .
      dockerfile: ./path/to/Dockerfile
此外,我需要在运行主机时指定~/path/on/host,而不是在docker compose文件中

version: '3'

services:
  my-app:
    build:
      context: .
      dockerfile: ./path/to/Dockerfile
    volumes:
      - ~/path/on/host:/path/on/container
    ports:
      - "3000:3000"
然后您可以使用
docker compose up-d
启动您的服务。请确保首先停止并移除使用docker命令启动的容器,否则会发生冲突

根据评论进行编辑:

创建包含以下内容的.env文件:

HOST_PATH=~/path/on/host
并更改docker-compose.yml:

version: '3'

services:
  my-app:
    build:
      context: .
      dockerfile: ./path/to/Dockerfile
    volumes:
      - ${HOST_PATH}:/path/on/container
    ports:
      - "3000:3000"

@leopal的可能重复它的不同之处在于运行主机时指定
~/path/on/host
,而不是在docker compose文件中。我希望在运行主机时指定
~/path/on/host
,而不是在docker compose文件中我不确定“运行主机时”是什么意思但我用一个来自主机上变量集的设置更新了解决方案。这对我不适用。目录总是空的。