Mă lovesc cu capul de asta de zile întregi și nu pot să-mi dau seama care este ultimul pas. Încerc să implementez o aplicație nodejs ca parte a unei configurații cu mai multe containere la elastic beanstalk.
Totul pare să funcționeze, dar când încarc o nouă versiune de aplicație (eb deploy) mediul nu se efectuează docker pull pentru a obține cea mai nouă versiune a containerului. În schimb, se folosește imaginea stocată pe aparat care conține vechiul cod al aplicației.
Fișierul meu Dockerrun.aws.json:
{
„AWSEBDockerrunVersion”: 2,
....
„containerDefinitions”: [
{
"nume": "nucleu",
"imagine": "xxx/core:latest",
"hostname": "nucleu",
„esențial”: adevărat,
„portMappings”: [
{
„hostPort”: 80,
„containerPort”: 8012
}
],
"linkuri": ["redis"],
„memorie”: 600
},
{
"nume": "redis",
"imagine": "redis:6.2-alpine",
"hostname": "redis",
„esențial”: adevărat,
„memorie”: 300,
„portMappings”: [
{
„hostPort”: 6379,
„containerPort”: 6379
}
],
}
]
}
Fișierul meu codebuild (buildspec.yml)
versiunea: 0.2
faze:
construi:
comenzi:
- echo Build a început la `date`
- echo Construirea imaginii Docker de producție...
- echo „$DOCKER_PW” | docker login -u „$DOCKER_ID” --parola-stdin
- docker build -t xxx/core .
post_build:
comenzi:
# Luați aceste imagini și împingeți-le în hub-ul Docker
- docker push xxx/core
artefacte:
fisiere:
- Dockerrun.aws.json
- .ebextensions/**/*
Am verificat că o nouă imagine este împinsă la fiecare implementare (funcționează!). Am verificat că eb descarcă cea mai recentă versiune a fișierului Dockerrun (funcționează!) Pot chiar „aparent” să văd descărcările imaginii crescând pe docker-hub, dar când fac ssh pe mașină, imaginea persistată este veche. Sunt blocat!
Sunt atât de fericit pentru orice ajutor.