Unable to detect rollbacks during "docker stack deploy" in CI/CD
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 42/100
Hướng nghiên cứu
Bắt đầu bằng cách theo dõi docker stack deploy --detach=false qua phần xử lý cập nhật service và rollback, tập trung vào cách lệnh xác định trạng thái thoát của nó. Tái hiện hành vi này với lỗi healthcheck trong docker-compose.yml được cung cấp và xác minh rằng rollback được báo cáo bằng một trạng thái khác không phù hợp cho CI/CD.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Description
We're running a docker stack deploy ... in CI/CD to deploy apps. When a service isn't updated successfully and a rollback is triggered, the deploy command still exits with code 0 indicating everything is fine. I haven't found a way to let it exit with another code, so the CI/CD pipeline can react on the deployment error (the rollback).
$ docker stack deploy --detach=false -c docker-compose.yml test-rollback
Updating service test-rollback_web (id: ximv0s6r8fgd17mdh6d100yuk)
overall progress: rolling back update: 2 out of 2 tasks
1/2: running [==================================================>]
2/2: running [==================================================>]
rollback: update rolled back due to failure or early termination of task 8jej8t73el7cgty3t5s4l6gwp
verify: Service ximv0s6r8fgd17mdh6d100yuk converged
$ echo $?
0
Used docker-compose (first deploy it with exit 0 in the healthcheck, then edit to exit 1 to get a rollback on the next deployment):
$ cat docker-compose.yml
services:
web:
image: nginx:alpine
deploy:
replicas: 2
update_config:
order: start-first
failure_action: rollback
monitor: 5s
parallelism: 1
restart_policy:
condition: any
healthcheck:
# guaranteed to fail
test: ["CMD", "sh", "-c", "exit 1"]
interval: 2s
timeout: 1s
retries: 2
- Ngôn ngữ chính
- Go
- Star
- 6.1k
- Fork
- 2.2k
- Merge trung bình
- 1 ngày 17 giờ
- Pull request đã merge (30 ngày)
- 28
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của docker/cli
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 92/100
Maintainer thường phản hồi trong vòng 1 ngày
-
kind/bug status/0-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày
-
kind/bug status/0-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
docker/cli#7176 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
docker/cli#7005 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
kind/feature status/0-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
docker/cli#6919 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Issue tương tự
-
type/bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
repowise-dev/repowise#2966 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 92/100
blinklabs-io/dingo#4937 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
getkin/kin-openapi#1284 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[software-development-practices:nist-ssdf] github/gh-aw-threat-detection repository guidanceĐang mởsoftware-development-practices software-development-practices:nist-ssdf
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
githubnext/gh-aw-cao#15860 ·
Maintainer thường phản hồi trong vòng 1 ngày