2

Google Cloude의 GitLab에서 내 컴퓨팅 엔진으로의 지속적인 전송을 가능하게하려고합니다. 거기에 우분투 16.04 TSL이 실행됩니다. 나는 Swift, vapor, nginx와 같이 프로젝트를 실행하는 데 필요한 모든 구성 요소를 설치했다. 나는 Gitlab 러너를 설치할 수 있으며 내 gitlab repo에서 액세스 할 수있는 러너를 만들었습니다. 매 주자를 강타 할 때마다 주자가 발동합니다. 내가 chmod -R 777에 대한 사용 권한을 변경하는 경우Gitlab - Google 컴퓨팅 엔진 Continuous delivery

could not create leading directories of '/home/gitlab-runner/builds/2bbbbbd/0/Server/Packages/vapor.git': Permission denied

그것은 gitlab 파이프 라인에 표시 build 스테이지 running에 hange합니다 : 어떤 일이 것은 인해 실패입니다.

내가 좋아하는 뭔가 않았다 sudo chown -R gitlab-runner:gitlab-runner /home/gitlab-runner/builds sudo chown -R gitlab-runner:gitlab-runner /home/gitlab-runner/cache 하지만 문제가 해결되지 않은 오류가 내 .gitlab-ci.yml

before_script: 
    - swift --version 

stages: 
    - build 
    - deploy 

job_build: 
    stage: build 
    before_script: 
    - vapor clean 
    script: 
    - vapor build --release 
    only: 
    - master 

job_run_app: 
    stage: deploy 
    script: 
    - echo "Deploy a API" 
    - vapor run --name=App --env=production 
    environment: 
    name: production 

job_run_frontend: 
    stage: deploy 
    script: 
    - echo "Deploy a Frontend" 
    - vapor run --name=Frontend --env=production 
    environment: 
    name: production 

그러나이 아래 다음에 Permission denied

통과하지 않은 동일 단계 예. 배포하십시오. 나는 14h 이상을 기다렸지 만 결과는 나오지 않았다. 그리고 ... 내가 가지고있는 몇 가지 더 질문 :

  1. Gitlab 러너가 생성하는 모든 새로운 일이 자신의 폴더가이 위치에 위치 /home/gitlab-runner/builds/에서 구축합니다. 예를 들면. 내 프로젝트는 /home/gitlab-runner/builds/2bbbbbd/이며 명령이 실행됩니다. 첫 번째 버전이 실행되고 새 버전을 배포하면 어떻게됩니까? 첫 번째 인스턴스에 의해 포트가 차단되는 등의 문제가 있습니까?
  2. supervisor을 사용하려면 폴더를 배포 할 때마다이 작업을 어떻게 수행해야합니까?
  3. 누구나 나를 설명하거나 보여 주거나 튜토리얼을 가르쳐 줄 수 있습니까? 긴 깊은 검색
+0

어떻게 권한 문제를 해결 했습니까? 나 자신과 같은 문제에 직면 해있다. –

+0

나는 chmod -R 777을 사용했다. 완벽한 솔루션은 아니지만 테스트 목적으로는 괜찮습니다. 어떻게 그것이 완료되지 않은 과정 때문에'build'에 걸려 있었습니까? CD의 경우 지금 dpl을 목표로합니다 – Shial

+0

몇 가지 작업을 한 후에 저는 gce에서 작동하도록'build'를 얻었습니다. CD를 위해 dpl을 살펴 보자. –

답변

1

How to start a service using GitLab runner

덕분에 나는 finnaly answear을 faound! 전체 기사는 위에 나와 있습니다. 간단히 GitLab CI 문서에서는 배포를 위해 dpl을 사용할 것을 권장합니다. Gitlab 러너 테스트를 실행하고 처리해야합니다. 주자는 각 빌드를 완료 한 후 모든 생성 된 프로세스를 종료하도록 설계되었습니다. GitLab 러너는 카탈로그 외부에서 작업을 수행 할 수 없습니다.

관련 문제