Я использую эластичный стебель для развертывания Dockerfile
мой Dockerfile должен был иметь
ARG imageTag
FROM xxxxx.dkr.ecr.us-east-2.amazonaws.com/xxxxxx/xxxx:$imageTag
EXPOSE 44444 44440
Затем я обнаружил, что не могу сделать 'eb init -p docker --build-arg
Поэтому я решил использовать sed
Таким образом, я извлекаю из репо Dockerfile с поправкой на
FROM xxxxx.dkr.ecr.us-east-2.amazonaws.com/xxxxxx/xxxx:imageTag
EXPOSE 44444 44440
и сделать
sh('sed -i s/imageTag/$imageTag/g Dockerfile;cat Dockerfile')
Я вижу в cat, что он заменил imageTag на параметр, но когда он добирается до eb init -p docker, он терпит неудачу, как говорится
ответ от демона: манифест для xxxxx.dkr.ecr.us-east-2.amazonaws.com/xxxxxx/xxxx:imageTag не найден, т.е. он пытается извлечь из ecr тег imageTag?
Может кто-нибудь сказать мне, почему? Читает ли Dockerfile в памяти или что-то на git checkout?
Спасибо
так что трубопровод сейчас
pipeline {
agent any
stages {
stage ('Checkout') {
steps {
git(
url: 'https://github.com/xxxxx/xxxx.git ',
credentialsId: 'xxxxx',
branch: "master"
)
}
}
stage ('Image Choose') {
steps {
sh('sed -i s/imageTag/$imageTag/g Dockerfile;cat Dockerfile')
}
}
stage('EB terminate') {
steps {
script {
withAWS(credentials:'xxxxx') {
try {
sh('eb terminate --force $environmentName ')
}
catch (Exception e) {
}
}
}
}
}
stage('EB docker init') {
steps {
script {
withAWS(credentials:'xxx') {
sh('eb init -p docker -k $keyName xxxx')
}
}
}
}
stage('EB docker deploy') {
steps {
script {
withAWS(credentials:'xxxx') {
sh('eb create $environmentName ')
}
}
}
}
stage('EB docker open') {
steps {
script {
withAWS(credentials:'xxxx ') {
sh('eb open ')
}
}
}
}