Tôi đã đập đầu vào điều này trong nhiều ngày nay và dường như không thể tìm ra bước cuối cùng. Tôi đang cố gắng triển khai ứng dụng nodejs như một phần của thiết lập nhiều vùng chứa cho cây đậu đàn hồi.
Mọi thứ dường như hoạt động nhưng khi tôi tải lên phiên bản ứng dụng mới (triển khai eb), môi trường không có trình kéo docker nào được thực hiện để tải phiên bản mới nhất của vùng chứa. Thay vào đó, hình ảnh được lưu trữ trên máy được sử dụng có chứa mã ứng dụng cũ.
Tệp Dockerrun.aws.json của tôi:
{
"AWSEBDockerrunVersion": 2,
....
"Định nghĩa vùng chứa": [
{
"tên": "lõi",
"hình ảnh": "xxx/lõi: mới nhất",
"tên máy chủ": "lõi",
"thiết yếu": đúng,
"ánh xạ cổng": [
{
"hostPort": 80,
"containerPort": 8012
}
],
"liên kết": ["redis"],
"bộ nhớ": 600
},
{
"tên": "làm lại",
"hình ảnh": "redis:6.2-alpine",
"tên máy chủ": "redis",
"thiết yếu": đúng,
"bộ nhớ": 300,
"ánh xạ cổng": [
{
"hostPort": 6379,
"containerPort": 6379
}
],
}
]
}
Tệp codebuild của tôi (buildspec.yml)
phiên bản: 0.2
giai đoạn:
xây dựng:
lệnh:
- echo Bản dựng đã bắt đầu vào `date`
- echo Xây dựng hình ảnh Docker sản xuất...
- tiếng vang "$DOCKER_PW" | đăng nhập docker -u "$DOCKER_ID" --password-stdin
- docker build -t xxx/core .
post_build:
lệnh:
# Lấy những hình ảnh này và đẩy chúng vào trung tâm Docker
- docker đẩy xxx/lõi
hiện vật:
các tập tin:
- Dockerrun.aws.json
- .ebextensions/**/*
Tôi đã kiểm tra xem một hình ảnh mới có được đẩy vào mỗi lần triển khai không (hoạt động!). Tôi đã kiểm tra xem eb tải xuống phiên bản mới nhất của tệp Dockerrun (hoạt động!) Tôi thậm chí có thể "dường như" thấy số lượt tải xuống của hình ảnh tăng lên trên docker-hub, nhưng khi tôi ssh trên máy, hình ảnh vẫn tồn tại đã cũ. Tôi bị mắc kẹt!
Tôi rất vui vì được giúp đỡ.