2017-12-08 18 views
1

우리는 프로젝트를 gitlab에 가지고 있습니다. 원격 호스트에 Jenkins + Phping을 사용하여 배포 할 수 있지만 Jenkins은 자주 느리게 실행됩니다. Gitlab-ciDocker 이미지가있는 많은 예제가 있지만 Docker 이미지는 사용하고 싶지 않습니다. 이 작업을 원격 호스트에 복제하고 일부 작업을 트리거 한 후이 작업을 원격 호스트에 복제하려고합니다. 나는 gitlab-ci 주자 sshshell을 보았습니다. 아마도이 주자 중 하나를 사용하고 있을까요?gitlab ci를 사용하여 php 프로젝트를 Docker 이미지없이 원격 호스트에 배포 할 수 있습니까?

Docker 이미지없이 원격 호스트에 내 PHP 프로젝트를 gitlab ci와 함께 배포 할 수 있습니까? 맞을까요?

답변

0

나는 몇 주 전에 그것을 해왔다. 그럴 경우 shell 주자와 함께 gitlab-ci을 사용하고 있었지만 잘 돌아갔습니다. 나는 SSH 키에 약간의 문제가 있었다, 그러나 나는 조금 읽기 고정 :

http://www.linuxproblem.org/art_9.html

하고 그래서

https://apple.stackexchange.com/questions/48502/how-can-i-permanently-add-my-ssh-private-key-to-keychain-so-it-is-automatically

가, 그래 당신이 이런 식으로 배포 할 수 있습니다를하고 그것을 할 괜찮아요 .

나는 jar 응용 프로그램을 배포하는 데 사용한 .gitlab-ci.yml을 추가하고 있습니다.

image: JAVA:latest 

before_script: 
    - /home/leandro/netbeans-8.2/java/maven/bin/mvn clean install 

after_script: 

stages: 
    - build_deploy_dev 
    - build_deploy_production 

build_&_deploy_dev: 
    stage: build_deploy_dev 
    except: 
    - master 
    script: 
    - cd target 
    - scp EnviaEmail-1.0-SNAPSHOT-jar-with-dependencies.jar [email protected]:/home/leandro/Desktop 
    - ssh [email protected] "kill $(ps -ef | grep EnviaEmail | grep -v grep | awk '{print $2}') </dev/null> /home/leandro/Desktop/KillEnviaEmail.log 2>&1 &" 
    - ssh [email protected] "java -jar /home/leandro/Desktop/EnviaEmail-1.0-SNAPSHOT-jar-with-dependencies.jar -Xmx256m </dev/null> /home/leandro/Desktop/EnviaEmail.log 2>&1 &" 

희망이 도움