【发布时间】:2023-11-25 09:27:01
【问题描述】:
我有一个安装 cifs 共享的脚本。
当我运行docker-compose run www ./myscript 时,mount 返回
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
当我运行docker-compose up -d www && docker-compose exec www ./my-script 时,它可以挂载cifs 共享。
我的 docker-compose.yml 看起来像
version: "3"
services:
www:
build:
context: .
dockerfile: ./www.dockerfile
environment:
- SAMBA_USER
- SAMBA_PASS
- SAMBA_PATH
- SAMBA_MASK
volumes:
- ./www:/app
cap_add:
- SYS_ADMIN
- DAC_READ_SEARCH
tty: true
stdin_open: true
command: tail -f /dev/null # hang container so I can exec in
我的 www.dockerfile 看起来像
FROM ruby:2.3.3
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs
RUN apt install -y cifs-utils
RUN mkdir /app
WORKDIR /app
COPY ./www /app
www/myscript 看起来像
#!/bin/bash
mkdir -p /mnt/data
mount -t cifs -o username=$SAMBA_USER,password=$SAMBA_PASS "$SAMBA_PATH" /mnt/data
ls /mnt/data
Docker 版本 18.03.0-ce,构建 0520e24
docker-compose 版本 1.20.1,构建 5d8c71b
我真的希望 ./myscript 作为 docker-compose 命令运行,但它也返回权限被拒绝。有什么线索吗? TIA
【问题讨论】:
-
在 ubuntu 14.04 上失败,但在 docker-for-mac 上失败
-
我有一个 repo 来演示这个问题。 git clone github.com/lukerohde/debug-cifs-on-docker-compose.git && cd debug-cifs-on-docker-compose && ./run-test
-
我已经在 docker-compose 的 github 上发帖了 github.com/docker/compose/issues/5958
-
这两种情况在新版本的 docker for mac 中也失败了。必须是能力变化。
标签: docker docker-compose cifs