• 请不要在回答技术问题时复制粘贴 AI 生成的内容
sjmcefc2
V2EX  ›  程序员

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

  •  
  •   sjmcefc2 · Oct 8, 2020 · 4924 views
    This topic created in 2219 days ago, the information mentioned may be changed or developed.
    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'
    14 replies  •  2024-05-27 13:12:34 +08:00
    sjmcefc2
    sjmcefc2
    OP
    Oct 8, 2020
    1
    间歇性的出现 “
    另一个程序正在使用此文件,进程无法访问”问题,有点奇怪,权限是对的,docker 也正常运行
    hefish
    hefish
    Oct 8, 2020
    2
    我也是用的这个镜像,也是常出现这个问题。我不是用的 docker-composer,我是直接 docker run 的。
    sjmcefc2
    sjmcefc2
    OP
    Oct 8, 2020
    3
    难道这个镜像有问题?好像这个 star 还是挺多的。
    sjmcefc2
    sjmcefc2
    OP
    Oct 8, 2020
    4
    话说哪里有这种常用应用的 docker compose?
    vhwwls
    vhwwls
    Oct 8, 2020
    5
    给个思路,可能和 Windows 的权限管理有关系。
    zlowly
    zlowly
    Oct 9, 2020
    7
    也可以往 smb.conf 里加上 strict locking = no 看看能否解决。
    hefish
    hefish
    Oct 9, 2020
    8
    看起来是 samba 版本的问题,我已经安装 github 上的提示,apk upgrade 了。明天看看情况。
    sjmcefc2
    sjmcefc2
    OP
    Oct 11, 2020
    9
    @hefish 貌似不行啊,时不时跳出来一个进程占用,句柄无效的。
    hefish
    hefish
    Oct 12, 2020
    10
    @sjmcefc2 是的,我现在换了 elswork/samba:latest 这个镜像,然后也进去 apk upgrade 了一把,目前使用正常。
    sjmcefc2
    sjmcefc2
    OP
    Oct 12, 2020
    11
    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
    qinsi
    May 24, 2021
    12
    @qwertyegg 这个 issue 里新回复的命令解决了我的问题:
    `docker exec -it samba /bin/bash -c "apk -U upgrade && pkill smbd"`
    然后重启 samba 就好了
    CczYa
    CczYa
    May 27, 2024
    13
    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
    CczYa
    May 27, 2024
    14
    docker exec -it samba /bin/bash -c "apk -U upgrade && pkill smbd"
    ---
    或者干脆使用这个镜像:andyzhangx/samba:win-fix
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5523 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 68ms · UTC 02:59 · PVG 10:59 · LAX 18:59 · JFK 21:59
    ♥ Do have faith in what you're doing.