从Docker容器创建conda环境时出现PermissionError权限错误
解决conda env create时的PermissionError权限问题
问题原因
容器内/home/latplan目录及文件的默认所有者为root,你以普通用户test_user执行conda env create时,没有在该目录下创建临时文件(如condaenv.w2sxir_p.requirements.txt)的写入权限,因此触发权限报错。
解决方案
方案1:构建镜像时提前设置目录权限(推荐)
修改Dockerfile,在复制文件后添加权限调整步骤,确保普通用户可操作目标目录:
FROM continuumio/conda-ci-linux-64-python3.7 COPY . /home/latplan # 将目录所有者改为镜像默认的conda用户(该镜像默认用户为conda) RUN chown -R conda:conda /home/latplan RUN sudo apt-get update RUN sudo apt-get install nano
重新构建镜像后,再运行容器执行conda env create命令即可。
方案2:在容器内用sudo临时提升权限执行命令
进入容器后,直接用sudo执行conda命令:
sudo conda env create --name latplan -f environment.yml
方案3:切换到root用户执行命令
进入容器后先切换到root身份,完成环境创建后可按需调整权限:
sudo su - conda env create --name latplan -f environment.yml # 可选:将conda环境目录权限赋予test_user chown -R test_user:test_user /opt/conda/envs/latplan
内容的提问来源于stack exchange,提问作者RandomFellow
相关产品推荐
相关产品推荐

