gpt4 book ai didi

docker - 无法构建克隆的 Jekyll 站点 - jekyll 3.8.5 |错误 : Permission denied @ dir_s_mkdir -/srv/jekyll/_site

转载 作者:行者123 更新时间:2023-12-02 18:19:21 27 4
gpt4 key购买 nike

由于权限错误,我无法构建用 git 克隆的 jekyll 站点。我正在使用 Ubuntu 18.04。我查看了大多数关于此错误的 SO 帖子,但没有一个解决方案对我有用。

构建站点的命令是docker-compose up。使用或不使用 sudo 运行此命令都不会更改错误。我在 docker 组。我能够使用 bundle exec jekyll serve 构建站点。此命令成功创建了 _site 文件夹。

我尝试手动添加 _site,但这导致了不同的错误。

$ docker-compose up         
Starting site ... done
Attaching to site
site | Configuration file: /srv/jekyll/_config.yml
site | Source: /srv/jekyll
site | Destination: /srv/jekyll/_site
site | Incremental build: disabled. Enable with --incremental
site | Generating...
site | Jekyll Feed: Generating feed for posts
site | jekyll 3.8.5 | Error: Permission denied @ dir_s_mkdir - /srv/jekyll/_site
site exited with code 1

docker-compose.yml

version: '3'
services:
doc:
image: jekyll/jekyll:3.8
volumes:
- .:/srv/jekyll
container_name: site
ports:
- "4000:4000"
stdin_open: true
tty: true
command: bash -c "bundle install && bundle exec jekyll serve --host 0.0.0.0"

我希望不会出现任何错误并成功创建 _site 目录。

最佳答案

我有同样的问题,我从问题中了解到,图像 jekyll/jekyll:3.8在 UID 1000 下创建一个名为 jekyll 的组和用户,这是 Ubuntu 的第一个用户(在我的例子中)。

当您尝试使用与用户 UID 1000 不同的另一个用户运行您的撰写文件时,您安装的卷具有当前用户的所有者,这与 jekyll 的 UID 不同,那么当您的服务尝试运行时他未经许可的东西。

为了解决我在 this repository 中找到的问题这个环境变量:
杰基尔_UID = 1000
杰基尔_GID = 1000

在 compose 文件中添加环境变量并将值 1000 更改为当前用户的 UID。

    environment:
JEKYLL_UID: 1001
JEKYLL_GID: 1001

这对我来说很好。

要打印您当前的 UID:

$ echo $UID
1001

关于docker - 无法构建克隆的 Jekyll 站点 - jekyll 3.8.5 |错误 : Permission denied @ dir_s_mkdir -/srv/jekyll/_site,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57503011/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com