AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 1168936
Accepted
LemongrabThree
LemongrabThree
Asked: 2024-12-16 21:36:46 +0800 CST2024-12-16 21:36:46 +0800 CST 2024-12-16 21:36:46 +0800 CST

Configurando o GitLab no Docker para Windows com volumes compartilhados de um servidor Linux

  • 772

Tenho uma instância do GitLab em um contêiner Docker em execução em um Synology NAS. Agora, quero mover o GitLab para um PC Windows que tenho, mas manter os dados no NAS, compartilhando pastas e tornando-as volumes Docker. Para testar, criei algumas pastas config, data, e logsno NAS e as compartilhei na rede com "Shared Folder". Pelo que entendi, configuramos para usar SMB para isso. Então, na máquina Windows, executo (com base nesta sugestão)

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

e mais dois para criar gitlab-datae gitlab-logs.

Então, eu inicio o contêiner com

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

e trava com o erro

...
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 ]

Quando olho para as pastas no NAS, posso ver que o contêiner criou com sucesso todos os arquivos e pastas que o GitLab precisa, mas todos eles têm proprietário gitlab_docker_volume:userse 777permissões. No datavolume do contêiner GitLab original que está sendo executado no NAS, a git-datapasta pertence a algum usuário misterioso 998e tem 2770permissões.

Se entendi corretamente, o que está acontecendo é que o contêiner do GitLab tenta acessar chowna git-datapasta e esse comando teria que ser mapeado no compartilhamento SMB/CIFS, mas isso não está acontecendo.

Há duas postagens sobre o mesmo erro, mas elas o encontraram usando configurações diferentes para seus volumes: uma delas parece ter o problema devido à execução do servidor Windows em uma VM, a outra está usando pastas nativas do 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

Também tentei descobrir como editar as permissões do Linux por meio do compartilhamento de rede em geral, mas os resultados da pesquisa estão inundados com "como definir as permissões ao criar as pastas para que o contêiner do Docker possa editá-las em primeiro lugar" - o que já estava funcionando na minha configuração.

Eu, por outro lado, tenho pastas compartilhadas que estão originalmente em uma máquina Linux. Existe alguma maneira de alterar a configuração de compartilhamento de pastas, a configuração de volume ou qualquer outra coisa, para que o contêiner possa alterar o usuário e as permissões dos arquivos? O Docker está sendo executado com o backend WSL, a propósito.

docker
  • 1 1 respostas
  • 41 Views

1 respostas

  • Voted
  1. Best Answer
    LemongrabThree
    2024-12-17T19:41:24+08:002024-12-17T19:41:24+08:00

    Consegui fazer funcionar compartilhando as pastas usando NFS em vez de SMB.

    Usei estas instruções. Em suma, o docker volumecomando agora é

    docker volume create --driver local
      --opt type=nfs
      --opt device=:/volume1/gitlab_docker_volume/config
      --opt o=addr=192.168.1.150,rw gitlab-config
    

    Habilitar o NFS no NAS é bem óbvio por meio da GUI. Não tenho tempo para investigar como fazer a segurança do Kerberos funcionar, imagino que seja complicado, mas possível. Por enquanto, isso é o suficiente para meus propósitos.

    • 0

relate perguntas

  • Ainda confuso por que o docker funciona quando você faz um processo ouvir 0.0.0.0, mas não 127.0.0.1

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

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

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve