[英]cifs permission denied with docker-compose run but not docker-compose exec
我有一個安裝 cifs 共享的腳本。
當我運行docker-compose run www ./myscript
mount 返回
mount error(13): Permission denied Refer to the mount.cifs(8) manual page (eg 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
就我而言,除了--cap-add SYS_ADMIN --cap-add DAC_READ_SEARCH
我還必須禁用(最好編寫自己的模板)apparmor 模板,因為默認的 docker apparmor 模板具有deny mount
指令。
例如
docker run -it
--cap-add SYS_ADMIN
--cap-add DAC_READ_SEARCH
--security-opt="apparmor:unconfined"
my-container
在我的撰寫文件中使用 'privileged: true' 有效,但感覺很邪惡。
我從這個列表中嘗試了一堆隨機功能https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities但找不到任何可以工作的組合(不是系統性)。
最后決定不使用 samba。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.