AWS ECS EC2 непрерывного развертывания с Jenkins - PullRequest
0 голосов
/ 06 марта 2019

Я использую jenkins для непрерывного развертывания из gitlab в экземпляр контейнера aws ecs ec2. Я использую файл Дженкинса для этой цели. Для регистрации определения задачи при каждом нажатии я поместил json-файл определения задачи в папку aws в gitlab. Можно ли поместить json-файл определения задачи в jenkins, чтобы нам оставалось хранить только файл jenkins в gitlab?

В jenkins / var / lib / jenkins / workspace / jobname есть папка рабочей области, которая создается после первой сборки. Можем ли мы разместить определение задачи в этом месте?

Мой Jenkinsfile вставлен ниже

stage 'Checkout' 
 git 'git@gitlab.xxxx.com/repo.git'


 stage ("Docker build") {
sh "docker build --no-cache -t xxxx:${BUILD_NUMBER}" ."
}

stage("Docker push") {
docker.withRegistry('https://xxxxxxxxxxxx.dkr.ecr.ap-southeast-1.amazonaws.com', 'ecr:regopm:ecr-credentials') {
    docker.image("xxxxx:${BUILD_NUMBER}").push(remoteImageTag) 
    }
}

stage ("Deploy") {
sh "sed -e 's;BUILD_TAG;${BUILD_NUMBER};g' aws/task-definition.json >            aws/task-definition-${remoteImageTag}.json"


sh  "                                                                     \
      aws ecs register-task-definition  --family ${taskFamily}                \
                                        --cli-input-json ${taskDefile}        \
    "


  def taskRevision = sh (
      returnStdout: true,
      script: " aws ecs describe-task-definition  --task-definition  ${taskFamily} | egrep 'revision' | tr ',' ' '| awk '{print \$2}' "
 ).trim()



 sh  "                                                                     \
      aws ecs update-service  --cluster ${clusterName}                        \
                              --service ${serviceName}                        \
                              --task-definition ${taskFamily}:${taskRevision} \
                              --desired-count 1                               \
    "
 }

1 Ответ

0 голосов
/ 09 апреля 2019

используйте esc-cli в качестве альтернативного случая, если вы не хотите использовать определение задачи, установите esc-cli на узел jenkins и запустите его, но для этого по-прежнему требуется docker-compose на git.

...