如果项目需要在不同环境下部署,那么宿主机的项目文件路径也可能不同,用绝对路径的方式就不行了,但是相对路径貌似会在 /var/lib/docker/volumes 下面创建文件夹,是否可以将 docker-compose.yaml 所在的文件夹挂载到容器内呢?比如-v .:/project
|
qwerthhusnMay 11, 2021
1
> 但是相对路径貌似会在 /var/lib/docker/volumes 下面创建文件夹
这个不是相对路径,而是 docker 管理的 volume 要想相对路径,就用./xxx:/xxx |
|
2
@qwerthhusn 我试过了,提示是不行的:If you intended to pass a host directory, use absolute path
|
|
albertniMay 11, 2021
3
建议不同机器用不同的 env 文件
|
|
anthoyMay 11, 2021
4
@IurNusRay 你是使用 docker run 的吧,-v 好像是不能使用相对路径,可以配置在 docker-compose.yml ,volumes:是支持相对路径的,docker-compose up
|
|
qwerthhusnMay 11, 2021
5
我记得好像可以吧,难道是 docker-compose 或者 docker 版本不同?
不行的话用 env 文件,把相对路径的前半部分放到 env 里面,然后 yaml 里面引用一下就行了,即使环境变动改动也只需要改动一份 env 文件就行了 |
|
noqwertyMay 11, 2021
6
docker-compose 可以用 ${PWD}/project:/project
|
|
saytesnakeMay 11, 2021
7
/var/lib/docker/volumes 不是所谓的相对路径,是默认路径吧?
挂载的时候仅填写名称不带路径斜杠即是在那个目录里,如 project-a:/project |
|
stilleMay 11, 2021 via iPhone
8
docker compose
volumes: - ./abc:/xxx/xxx 你的数据就在 compose 目录下的 abc 中 |
|
stilleMay 11, 2021
9
根据容器不同,有时你得先创建 abc ,在 docker-compose up -d 启动..
|
|
11
@qwerthhusn docker-compose 是可以的哈哈,我之前用的是 docker run
|
|
12
@saytesnake 恩,是这样的,刚刚试了一下,在 compose 文件里面可以直接用".:/project"这样的语法
|