我在 docker 中有一个项目,可以在 MacOS 上正常运行。但我无法让它在 Windows (WSL2) 上运行。
我正在使用适用于 Windows 的 Docker Desktop。 (Windows 11)
Server: Docker Desktop 4.26.1 (131620)
Engine:
Version: 24.0.7
我在同一目录中有多个项目(图像)和一个作曲家项目。 Composer 项目启动所有这些项目。
我只是不知道如何找到数据卷。看起来问题的根源是配置中 $PWD 变量的使用。默认情况下,这会导致收到
PWD variable is not set
警告并导致;
来自守护程序的错误响应:无法挂载本地卷:挂载 /docker-volumes/local-mongo-data:/var/lib/docker/volumes/composer_-local-mongo-data/_data, 标志:0x1000:没有这样的文件或目录
但我尝试过;
.env
文件中定义PWD变量并将其设置为.
。${PWD}
。/
替换为 \
E:\Projects\composer\docker-volumes
、/E/Projects/composer/docker-volumes
等。\\wsl$\docker-desktop-data\data\docker\volumes
但是我无法让它工作。
docker-compose.yml
的一部分在作曲家项目中看起来像这样;
version: "3.0"
services:
rabbitmq:
build:
context: .
dockerfile: Dockerfile.rabbitmq
ports:
- "5672:5672"
- "15672:15672"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:15672"]
interval: 5s
timeout: 10s
retries: 5
volumes:
- "local-rabbit-data:/var/lib/rabbitmq"
pull_policy: always
redis:
image: "marketplace.gcr.io/google/redis6"
command:
- /etc/redis/redis.conf
ports:
- "6379:6379"
volumes:
- local-redis-data:/data
- ./redis.conf:/etc/redis/redis.conf
pull_policy: always
api:
image: api
restart: on-failure
depends_on:
- rabbitmq
- mongodb
- backend
- redis
env_file:
- .env.api
ports:
- "3000:3000"
volumes:
- ../api/src:/usr/src/app/src
command: yarn start:dev
mongodb:
image: "bitnami/mongodb:5.0.8"
env_file:
- .env.mongodb
ports:
- "27017:27017"
volumes:
- "local-mongo-data:/bitnami"
networks:
default:
aliases:
- db
volumes:
local-rabbit-data:
driver_opts:
type: none
device: $PWD/docker-volumes/local-rabbit-data
o: bind
local-mongo-data:
driver_opts:
type: none
device: $PWD/docker-volumes/local-mongo-data
o: bind
local-redis-data:
driver_opts:
type: none
device: $PWD/docker-volumes/local-redis-data
o: bind
在文件资源管理器中导航数据卷的目录:
\\wsl.localhost\docker-desktop-data\data\docker\volumes
我在 Windows 上的项目就在这个目录中:
E:\Projects\
作曲家项目中的卷目录:
E:\Projects\composer\docker-volumes
你能帮我弄清楚如何设置卷目录吗?
同样,Windows 11,Rancher Desktop 1.13.1
你能分享一下你的决心吗?