Docker首次安装失败,提示app.ini保存失败

Gogs 版本: 0.11.96.1026
系统类型及版本:DSM 6.2
数据库:mysql
问题描述:首次启动,进安装界面,选项都填写完成后,点立即安装,报错:
应用配置保存失败:open /app/gogs/custom/conf/app.ini: no such file or directory

忽略我的回复,我没看清问

你使用了什么命令操作 docker,具体步骤发出来看一下?

/app/gogs/docker/start.sh /bin/s6-svscan /app/gogs/docker/s6/

不应该是 docker run 吗?

DSM启动没用docker run,是在WEB界面启动的,后台只能看到这个

装了工具看到了:

docker run --name gogs-gogs1 --runtime runc -v /volume1/dsm/gogs:/data:rw -p 0.0.0.0:13022:22/tcp -p 0.0.0.0:13000:3000/tcp --net bridge --restart no -h gogs-gogs1 --expose 22/tcp --expose 3000/tcp -d -t -i --entrypoint “/app/gogs/docker/start.sh” gogs/gogs:latest /bin/s6-svscan /app/gogs/docker/s6/

。。我不知道 DSM 这个是咋启动的。。但是正确的路径 应该是 /data/gogs 而不是 /app/gogs/custom。。。

全部清掉,重新安装,提示:
应用配置保存失败:open /data/gogs/conf/app.ini: permission denied

我看了docker权限是rw, 其它docker映射在同一块硬盘都正常,不知道为什么gogs报了权限问题,看了commit。好像判断目录权限的方式有变,不知道是不是这个引起的

其实我也是 docker 菜鸡一个。。。我一时半会也不知道为什么

如果容器起来了

docker container exec [your_container_id] /bin/bash
ls -la /app/gogs/custom/conf
ps aux | grep gogs
看看目录是否存在,以及gogs以什么用户运行的

如果没起来

docker run -it --rm [gogs_image] /bin/bash
ls -la /app/gogs/custom/conf
看看文件是否存在

我说说我是怎么使用Docker运行gogs的。我没有使用官方的Docker镜像。使用的是自己制作的。其Dockerfile如下:

Dockerfile里的那个backup脚本你可以忽略掉,那个是我备份gogs使用的

其中wrapper脚本内容如下




然后启动docker的docker-compose如下

build gogs的docker image的目录结构如下

如果你的gogs依旧起不来,你可以参考的我的制作一个docker image。10分钟搞定。

1 Like

关于这个No Such file 我有一个猜测,宿主机的目录覆盖了容器内部的目录


/data/gogs目录只有root有写入权限,看来是web以git用户启动导致的没权限