ฉันต่อสู้กับสิ่งนี้มาหลายวันแล้วและไม่สามารถเข้าใจขั้นตอนสุดท้ายได้ ฉันกำลังพยายามปรับใช้แอป a nodejs ซึ่งเป็นส่วนหนึ่งของการตั้งค่าหลายคอนเทนเนอร์เพื่อยืดหยุ่นฝักถั่ว
ดูเหมือนว่าทุกอย่างจะใช้งานได้ แต่เมื่อฉันอัปโหลดเวอร์ชันแอปพลิเคชันใหม่ (eb ปรับใช้) สภาพแวดล้อมไม่มีการดึงนักเทียบท่าเพื่อรับคอนเทนเนอร์เวอร์ชันล่าสุด แต่จะใช้ภาพที่เก็บไว้ในเครื่องซึ่งมีรหัสแอปพลิเคชันเก่าแทน
ไฟล์ Dockerrun.aws.json ของฉัน:
{
"AWSEBDockerrunVersion": 2,
....
"นิยามคอนเทนเนอร์": [
{
"ชื่อ": "หลัก",
"image": "xxx/core:latest",
"ชื่อโฮสต์": "หลัก",
"จำเป็น": จริง
"การแมปพอร์ต": [
{
"โฮสต์พอร์ต": 80,
"คอนเทนเนอร์พอร์ต": 8012
}
]
"ลิงค์": ["redis"],
"หน่วยความจำ": 600
},
{
"ชื่อ": "เรดิส",
"ภาพ": "redis:6.2-อัลไพน์",
"ชื่อโฮสต์": "redis",
"จำเป็น": จริง
"หน่วยความจำ": 300,
"การแมปพอร์ต": [
{
"โฮสต์พอร์ต": 6379,
"พอร์ตคอนเทนเนอร์": 6379
}
]
}
]
}
ไฟล์ codebuild ของฉัน (buildspec.yml)
รุ่น: 0.2
ขั้นตอน:
สร้าง:
คำสั่ง:
- echo Build เริ่มต้นในวันที่ `date`
- echo สร้างอิมเมจ Docker ที่ใช้งานจริง...
- echo "$DOCKER_PW" | เข้าสู่ระบบนักเทียบท่า -u "$DOCKER_ID" --password-stdin
- นักเทียบท่า build -t xxx/core
post_build:
คำสั่ง:
# ถ่ายภาพเหล่านี้และส่งไปยังฮับ Docker
- นักเทียบท่ากด xxx/core
สิ่งประดิษฐ์:
ไฟล์:
- Dockerrun.aws.json
- .ebextensions/**/*
ฉันได้ตรวจสอบว่ามีการพุชอิมเมจใหม่ในการปรับใช้ทุกครั้ง (ใช้งานได้!) ฉันได้ตรวจสอบแล้วว่า eb ดาวน์โหลดไฟล์ Dockerrun เวอร์ชันล่าสุด (ใช้งานได้!) ฉันยังสามารถ "ดูเหมือน" ดูการดาวน์โหลดรูปภาพที่เพิ่มขึ้นบน docker-hub แต่เมื่อฉัน ssh บนเครื่อง รูปภาพที่คงอยู่นั้นเก่า ผมติดอยู่!
ฉันมีความสุขมากสำหรับความช่วยเหลือใดๆ