我对 kubernetes 和 docker 还很陌生,所以请耐心等待。
我正在尝试在 linux 中挂载一个 Windows 共享,该共享包含在 docker 中,这是一个 kubernetes pod。
我设法在 kubernetes 和 docker 中获得了所有正确的权限来手动挂载共享。但是我需要通过 Dockerfile 来完成,因为它需要自动化。
这是我的 Dockerfile:
WORKDIR /app
COPY ./start-script.sh ./start-script.sh
RUN apt-get update && apt-get install -y cifs-utils
RUN mkdir Windows-Share
# RUN mount.cifs <Window share folder> /app/Windows-Share/ -o username=<username>,password=<password>,domain=<domain>
ENTRYPOINT ["bash", "./start-script.sh"]
这是我的 start-script.sh:
#!/bin/bash
mount.cifs <Window share folder> /app/Windows-Share/ -o username=<username>,password=<password>,domain=<domain>
exec dotnet <dotnet dll>
现在应该注意的是,我无权访问任何 docker 命令,它们都是由 kubernetes 处理的。Kubernetes 创建 pod 后,日志将显示:
挂载错误(13):权限被拒绝
参考 mount.cifs(8) 手册页(例如 man mount.cifs)
这让我很困惑,因为如果我登录到 kubernetes pod 并手动运行 mount 命令,它就可以正常安装。我错过了什么?