AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-1190791

LemongrabThree's questions

Martin Hope
LemongrabThree
Asked: 2024-12-16 21:36:46 +0800 CST

使用与 Linux 服务器共享的卷在 Windows 版 Docker 上设置 GitLab

  • 5

我在 Synology NAS 上运行的 Docker 容器中有一个 GitLab 实例。现在,我想将 GitLab 移动到我拥有的 Windows PC 上,但通过共享文件夹并将其设为 Docker 卷,将数据保留在 NAS 上。为了测试它,我在 NAS 上创建了一些文件夹config、data和,logs并使用“共享文件夹”在网络上共享它们。据我所知,我们已将其配置为使用 SMB 来实现这一点。然后,在 Windows 机器上,我运行(基于此建议)

docker volume create --driver local
  --opt type=cifs
  --opt device=//192.168.1.150/gitlab_docker_volume/config
  --opt o=user=gitlab_docker_volume,password=<password> gitlab-config

另外两个是创建gitlab-data和gitlab-logs。

然后,我使用以下命令启动容器

docker run -d -p 8070:80 -p 8433:443 -p 8012:22
  -v gitlab-logs:/var/log/gitlab:rw
  -v gitlab-data:/var/opt/gitlab:rw
  -v gitlab-config:/etc/gitlab:rw gitlab/gitlab-ce

并因错误而崩溃

...
Mixlib::ShellOut::ShellCommandFailed:
Failed asserting that ownership of "/var/opt/gitlab/git-data" was git:git
...

2024-12-13 13:54:47 + [ root:root = git:git ]

当我查看 NAS 上的文件夹时,我可以看到容器成功创建了 GitLab 所需的所有文件和文件夹,但它们都有所有者gitlab_docker_volume:users和777权限。在dataNAS 上运行的原始 GitLab 容器的卷中,该git-data文件夹属于某个神秘用户998,并且具有2770权限。

如果我理解正确的话,发生的情况是 GitLab 容器尝试访问chown该git-data文件夹,并且该命令必须映射到 SMB/CIFS 共享,但事实并非如此。

有两篇帖子提到了相同的错误,但是它们在使用不同的卷设置时遇到了该问题 - 其中一个似乎是由于在虚拟机中运行 Windows 服务器而出现问题,另一个则使用 Windows 原生文件夹。

https://stackoverflow.com/questions/45134978/setting-up-gitlab-using-docker-on-windows-host-issue-with-shared-folders

https://stackoverflow.com/questions/44684621/volume-trouble-with-gitlab-docker-image-on-windows

我还尝试找出如何通过网络共享来编辑 Linux 权限,但搜索结果充斥着“如何在创建文件夹时设置权限,以便 Docker 容器可以首先编辑它们”——这在我的设置中已经起作用了。

另一方面,我有原本位于 Linux 计算机上的共享文件夹。我能否通过某种方式更改文件夹共享设置、卷设置或其他任何内容,以便容器可以更改文件的用户和权限?顺便说一下,Docker 正在使用 WSL 后端运行。

docker
  • 1 个回答
  • 41 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve