这来自一个古老的建议https://github.com/moby/moby/pull/39250关于一个问题。我尝试安装 CIFS 卷,通过 IP 配置它对我来说是可行的,但是当我尝试使用主机名配置它时它不起作用。
CIFS=XX.XX.XX.XX
api:
image: name-api:$TAG
environment:
- NODE_ENV=docker
ports:
- "3000:3000"
container_name: cc-api
volumes:
- cifs:/usr/node/cifs
volumes:
cifs:
driver: local
driver_opts:
type: cifs
o: username=$WSDLUSER,password=$WSDLPASS,rw,domain=domain.com,uid=1000,forceuid,gid=1000,forcegid,file_mode=0400,dir_mode=0500
device: "\\\\${CIFS}\\documentation\\_shared\\pdfs”
当我尝试将其更改为CIFSDOMAIN=cifs.domain.com
在创建卷期间出现错误invalid argument
。因此这应该有效:
volumes:
cifs:
driver: local
driver_opts:
type: cifs
o: addr=cifs.domain.com,username=$WSDLUSER,password=$WSDLPASS,rw,uid=1000,forceuid,gid=1000,forcegid,file_mode=0400,dir_mode=0500
device: "\\\\${CIFSDOMAIN}\\documentation\\_shared\\pdfs”
已经尝试过了"//${CIFSDOMAIN}/documentation/_shared/pdfs”
。
内核驱动程序是否可能无法解析主机名?本文说在进行 CIFS 挂载时需要使用 IP 地址,因为 docker 不使用相同的用户空间工具来执行挂载,如果提供了主机名,则会失败。
检查卷显示挂载点,对我来说看起来正确
{
"Driver": "local",
"Labels": {
"com.docker.compose.project": "cc",
"com.docker.compose.version": "1.27.4",
"com.docker.compose.volume": "cifs"
},
"Mountpoint": "/var/lib/docker/volumes/cc_cifs/_data",
"Name": "cc_cifs",
"Options": {
"device": "\\\\cifs.domain.com\\documentation\\_shared\\pdfs",
"o": "addr=cifs.domain.com,username=XXXXX,password=YYYYY,rw,uid=1000,forceuid,gid=1000,forcegid,file_mode=0400,dir_mode=0500",
"type": "cifs"
},
"Scope": "local"
}
此外,/etc/hosts是:
XX.XX.XX.XX cifs cifs.domain.com