树莓派Docker部署的Nextcloud更新时报权限错误如何解决
问题根因
最新版的nextcloud:apache官方镜像做了安全调整,构建过程中默认使用非root用户运行指令,而你setssl.sh中的a2enmod、a2ensite、a2enconf等操作需要修改系统目录,必须root权限才能执行,所以触发权限不足报错。
解决方案
1. 修改Dockerfile,切换用户执行配置
调整Dockerfile内容,执行SSL配置前先切换到root用户,操作完成后切回你需要的运行用户,同时给脚本增加执行权限:
FROM nextcloud:apache # 切换到root用户执行系统配置 USER root COPY setssl.sh /usr/local/bin/ # 给ssl配置脚本增加执行权限 RUN chmod +x /usr/local/bin/setssl.sh RUN /usr/local/bin/setssl.sh mail@mail.com 172.30.0.2 # 配置完成后切回和docker-compose一致的运行用户 USER 1000:1000
2. 新增.dockerignore文件缩小构建上下文
当前你构建时上下文大小达到45GB,是因为挂载的本地数据目录也被传入了构建环境,不仅速度慢还可能引发意外问题。在docker-compose.yml同级目录新建.dockerignore文件,内容如下:
ncdata/ ssl/ pictures/ *.log
3. 清理缓存重新构建
执行以下命令跳过旧缓存重新构建镜像:
docker-compose build --pull --no-cache docker-compose up -d
内容的提问来源于stack exchange,提问作者AriaTwoFive
相关产品推荐
相关产品推荐

