Fix lỗi GitHub self-hosted runner chạy báo Error: Docker build failed with exit code 1
Do khối lượng dự án cần sử dụng runner nhiều, mình hay sử dụng các runner tự host trên máy chủ Ubuntu 20, 22 hoặc 24. Tuy vậy, mình hay gặp tình huống phần runner không hoạt động ổn định và gặp lỗi Docker build failed with exit code 1 khá nhiều.
Docker build failed with exit code 1 – Lỗi này xuất hiện ở trong tab Actions của một dự án GitHub.

Khi gặp lỗi này, bạn sẽ thấy có mấy vấn đề sau:
Thường các GitHub Runner sẽ chạy trên OS alpine. Mình có thể kiểm tra như sau:
docker run --rm alpine:latest ping -c 3 google.com
Kết quả trả ra:
root@sg8:~# docker run --rm alpine:latest ping -c 3 google.com
Unable to find image 'alpine:latest' locally
latest: Pulling from library/alpine
Digest: sha256:4b7ce07002c69e8f3d704a9c5d6fd3053be500b7f1c69fc0d80990c2ad8dd412
Status: Downloaded newer image for alpine:latest
ping: bad address 'google.com'
Lỗi này sau khi debug thì nhận thấy phần DNS của Docker không hoạt động, mình tra tiếp thông tin về cách sửa DNS cho Docker như sau:
Sửa file /etc/docker/daemon.json
{
"dns": ["8.8.8.8", "8.8.4.4"]
}
Tiếp đến, khởi động lại service.
sudo systemctl daemon-reload
sudo systemctl restart docker
Cuối cùng, kiểm tra lại lần nữa:
docker run --rm alpine:latest ping -c 3 google.com
Kết quả sẽ như sau:
PING google.com (74.125.68.138): 56 data bytes
64 bytes from 74.125.68.138: seq=0 ttl=107 time=1.332 ms
64 bytes from 74.125.68.138: seq=1 ttl=107 time=2.874 ms
64 bytes from 74.125.68.138: seq=2 ttl=107 time=1.432 ms
Như vậy là DNS mới chạy thành công với Docker. Bạn có thể Re-run
