请教这个 docker compose 总觉得哪里不对,共享文件夹多个用户访问的时候,总是出现“另一个程序正在使用此文件,进程无法访问”

2020-10-08 08:28:48 +08:00
 sjmcefc2
version: '3.4'

services:
samba:
image: dperson/samba
container_name: samba
environment:
TZ: 'CCT'
networks:
- default
ports:
- "137:137/udp"
- "138:138/udp"
- "139:139/tcp"
- "445:445/tcp"
read_only: true
tmpfs:
- /tmp
restart: unless-stopped
stdin_open: true
tty: true
volumes:
- /mnt/shared/books:/books
- /mnt/shared/movie:/movie
- /mnt/shared/music:/music
command: '-s "books;/books;yes;no;no;;;;books" -s "movie;/movie;yes;no;no;;;;movie" -s "music;/music;yes;no;no;;;;music" -u "shared;shared" -p'
3594 次点击
所在节点    程序员
14 条回复
sjmcefc2
2020-10-08 08:31:13 +08:00
间歇性的出现 “
另一个程序正在使用此文件,进程无法访问”问题,有点奇怪,权限是对的,docker 也正常运行
hefish
2020-10-08 09:32:49 +08:00
我也是用的这个镜像,也是常出现这个问题。我不是用的 docker-composer,我是直接 docker run 的。
sjmcefc2
2020-10-08 12:20:27 +08:00
难道这个镜像有问题?好像这个 star 还是挺多的。
sjmcefc2
2020-10-08 12:23:04 +08:00
话说哪里有这种常用应用的 docker compose?
vhwwls
2020-10-08 20:50:12 +08:00
给个思路,可能和 Windows 的权限管理有关系。
qwertyegg
2020-10-09 00:02:47 +08:00
zlowly
2020-10-09 14:43:41 +08:00
也可以往 smb.conf 里加上 strict locking = no 看看能否解决。
hefish
2020-10-09 22:17:35 +08:00
看起来是 samba 版本的问题,我已经安装 github 上的提示,apk upgrade 了。明天看看情况。
sjmcefc2
2020-10-11 02:42:01 +08:00
@hefish 貌似不行啊,时不时跳出来一个进程占用,句柄无效的。
hefish
2020-10-12 10:03:50 +08:00
@sjmcefc2 是的,我现在换了 elswork/samba:latest 这个镜像,然后也进去 apk upgrade 了一把,目前使用正常。
sjmcefc2
2020-10-12 15:54:42 +08:00
docker run --name samba \
--detach \
--restart always \
--publish 139:139 --publish 445:445 \
--env USERID="0" \
--env GROUPID="0" \
--volume /home/pbversion/Sambashare/data:/share \
dperson/samba:latest \
-u "admin;这里对应用户 admin 的密码" \
-u "public;这里对应用户 public 的密码" \
-u "rd;这里对应用户 rd 的密码" \
-u "pd;这里对应用户 pd 的密码" \
-u "md;这里对应用户 md 的密码" \
-u "td;这里对应用户 td 的密码" \
-s "public;/share/public;yes;no;no;public;admin;admin;公共共享文件夹" \
-s "rd;/share/rd;yes;no;no;rd;admin;admin;研发部共享文件夹" \
-s "pd;/share/pd;yes;no;no;pd;admin;admin;生产部共享文件夹" \
-s "md;/share/md;yes;no;no;md;admin;admin;市场部共享文件夹" \
-s "td;/share/td;yes;no;no;td;admin;admin;技术部共享文件夹"

会是没有添加 userid,groupid 的原因吗?
qinsi
2021-05-24 10:04:50 +08:00
@qwertyegg 这个 issue 里新回复的命令解决了我的问题:
`docker exec -it samba /bin/bash -c "apk -U upgrade && pkill smbd"`
然后重启 samba 就好了
CczYa
213 天前
I'm having the same issue and also the error "Handle is invalid" in Windows.
From what I've read it's a problem in Samba 4.12.2 and it has been fixed in the next version.
It would be great if @dperson could update.
---
Just checked and the latest version of Samba available in the Alpine 3.12 branch is 4.12.2r1, so this docker container cannot be updated.
---
A workaround is switching to the edge branch and updating Samba to 4.12.5r0 (and all the system) doing the following:
sed -i -e 's/v[[:digit:]]\..*\//edge\//g' /etc/apk/repositories
apk update
apk upgrade
---
OR
CczYa
213 天前
docker exec -it samba /bin/bash -c "apk -U upgrade && pkill smbd"
---
或者干脆使用这个镜像:andyzhangx/samba:win-fix

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/713007

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX