Permissões de integração contínua Angular CLI & Jenkins

1

Estou usando jenkins para uma integração contínua com cli angular, aqui estão os meus passos:

  • Pressione para o github
  • Jenkins puxa o código do meu repositório github, do npm install e ng build

Tudo está bem até aqui.

Meu problema é quando tento copiar todos os arquivos criados em /var/lib/jenkins/workspace/mywebsite/dist para /var/www/html/mywebsite

Este diretório é gerenciado pelo Nginx.

Eu recebi este erro: cp: cannot create regular file '/var/www/html/mywebsite/./inline.bundle.js': Permission denied

Alguém pode me ajudar?

Obrigado

    
por andy200486 07.03.2018 / 16:50

1 resposta

0

Infelizmente, você não pode simplesmente facilmente copiar os dados. Em vez disso, por que não deixar o NGINX ir buscar os dados através de um link simbólico?

Crie um symlink do diretório de destino da compilação em /var/www :

sudo mv /var/www/html /var/www/html.old
sudo ln -s /var/lib/jenkins/workspace/mywebsite/dist /var/www/html

Isso deve, assumindo que o NGINX também pode ler os dados na pasta /var/lib/jenkins/workspace/mywebsite/dist , ignorar a necessidade de deixar o Jenkins copiar diretamente as coisas para uma pasta fora de seu controle.

Perceba que você use /var/www/domain.tld , substituindo domain.tld pelo seu site real, e use esse para a raiz do documento na configuração do site nginx , em vez de /var/www/html . Há uma entrada Armadilhas de configuração do NGINX sobre possíveis problemas de usar a raiz do documento padrão que é relevante aqui . Afirma especificamente:

% bl0ck_qu0te%     
por Thomas Ward 07.03.2018 / 22:37