自己做了个工作上要用的 docker镜像,集成 rstudio-server
, jupyterlab
, code-server
在linux下一直使用良好(好吧,其实一开始也出过问题,很快解决了,后来居然没想起来当初是怎么解决的),但是在windows下rstudio-server
启动不了。把对应的rserver
目录的权限进行了修改,没用。
本来要给建明录制在windows下使用这个docker的视频,因为这个问题,耽搁了。
一个月后发现是ntfs分区不能启动, exfat分区能启动,那肯定是权限问题。
今天在linux下用同样的image布置环境时,也发生和windows下一样的错误,但是又有在同一台机器上能成功启动rstudio的container。
仔细观察这个错误的container和成功的container的yml
文件,以及相应的目录权限情况, 发现:
- 我映射了
./tmp:/tmp
文件夹 - 在
失败
的container中,./tmp
文件夹是755权限, 而成功的是777
。
明白了, rstudio-server
并不是以root
权限启动,但是又要往/tmp
里写东西,如果在宿主机中映射过去的目录没有开放相应的写入权限,那么rstudio-server就不能启动
解决办法:因为没找到在ntfs
分区上怎么给docker
用户开放权限的方法,那么简单点,不映射这个目录了
docker:
image: leoatchina/jupyterlab_rstudio
environment:
- PASSWD=testpass
ports:
- 8888:8888
- 8787:8787
- 8443:8443
volumes:
- ./root/.ssh:/root/.ssh
- ./root/.vim:/root/.vim
- ./root/.vim-plug:/root/.vim-plug
- ./rserver:/home/rserver
- ./jupyter:/jupyter
- ./pkgs:/opt/anaconda3/pkgs # 这个很关键!否则有些conda程序安装不上
- ./mnt:/mnt
#- ./tmp:/tmp # 就是这一句导致在ntfs下不能用!!!!权限问题, linux 下给予777, windows下干脆不要映射了
网友评论