Tôi đang cố gắng xây dựng một CI bằng gitlab, tôi bắt đầu bằng một hình ảnh docker cho gitlab và tôi không gặp vấn đề gì với kho lưu trữ giao diện người dùng, nhưng bây giờ với cùng tệp cấu hình gitlab-ci, tôi lại gặp lỗi daemon này.
Đây là kết quả của bản dựng:
[0KChạy với gitlab-ci-multi-runner 1.10.4 (b32125f)[0;m
[0;m[0KSử dụng trình thực thi Docker với hình ảnh docker:1.13.1 ...
[0;m[0KĐang kéo hình ảnh docker docker:1.13.1 ...
[0;mĐang chạy trên runner-4e4528ca-project-1649638-concurrent-0 qua runner-4e4528ca-machine-1487688057-7c0f1e46-digital-ocean-4gb...
[32;1mKho lưu trữ sao chép...[0;m
Đang sao chép vào '/builds/***/formation-back'...
[32;1mĐang kiểm tra af7cbcae dưới dạng docker...[0;m
[32;1mBỏ qua thiết lập các mô-đun con Git[0;m
[32;1m$ docker đăng nhập -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com[0;m
Cảnh báo: không lấy được điểm cuối đăng ký mặc định từ daemon (Không thể kết nối với daemon Docker tại unix:///var/run/docker.sock. Daemon Docker có đang chạy không?). Sử dụng mặc định của hệ thống: https://index.docker.io/v1/
Không thể kết nối với Docker daemon tại unix:///var/run/docker.sock. Docker daemon có đang chạy không?
[31;1mERROR: Xây dựng không thành công: mã thoát 1
[0;phút
Đây là .gitlab-ci.yml của tôi:
hình ảnh: docker:1.13.1
giai đoạn:
- xây dựng
- Bài kiểm tra
- triển khai
biến:
XÂY DỰNG_IMG:$CI_REGISTRY_IMAGE:$CI_BUILD_REF
TEST_IMG:$CI_REGISTRY_IMAGE:$CI_BUILD_REF_NAME
RELEASE_IMG: $CI_REGISTRY_IMAGE:mới nhất
AWS_STAGING_ENV: "***"
AWS_PROD_ENV: "***"
DOCKERRUN: Dockerrun.aws.json
TRIỂN KHAI_LƯU TRỮ: ${AWS_APP}-${CI_BUILD_REF}.zip
trước_kịch_bản:
- docker đăng nhập -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com
- .ci/before_script
xây dựng:
giai đoạn: xây dựng
kịch bản:
- docker build --pull -t $BUILD_IMG .
-docker đẩy $BUILD_IMG
Bài kiểm tra:
giai đoạn: thử nghiệm
kịch bản:
-docker kéo $BUILD_IMG
- docker run --rm $BUILD_IMG npm chạy thử nghiệm
-thẻ docker $BUILD_IMG $TEST_IMG
-docker đẩy $TEST_IMG
triển khai:dàn dựng:
giai đoạn: triển khai
môi trường: dàn dựng
biến:
DOCKER_IMG:${CI_REGISTRY_IMAGE}:${CI_BUILD_REF}
kịch bản:
- ./.ci/create-deploy-archive $DOCKER_IMG $AWS_BUCKET $DOCKERRUN $DEPLOY_ARCHIVE
- ./.ci/aws-deploy $DEPLOY_ARCHIVE $CI_BUILD_REF $AWS_STAGING_ENV
hiện vật:
đường dẫn:
-$DEPLOY_ARCHIVE
ngoại trừ:
- sản xuất
triển khai:sản xuất:
giai đoạn: triển khai
môi trường: Sản xuất
biến:
DOCKER_IMG: ${CI_REGISTRY_IMAGE}:mới nhất
kịch bản:
- .ci/push-new-image $TEST_IMG $RELEASE_IMG
- .ci/create-deploy-archive $DOCKER_IMG $AWS_BUCKET $DOCKERRUN $DEPLOY_ARCHIVE
- .ci/aws-deploy $DEPLOY_ARCHIVE $CI_BUILD_REF $AWS_PROD_ENV
hiện vật:
đường dẫn:
-$DEPLOY_ARCHIVE
chỉ một:
- sản xuất
khi nào: thủ công
Đây là tập tin config.toml của tôi:
đồng thời = 1
khoảng thời gian kiểm tra = 0
[[người chạy]]
tên = "***"
url = "https://gitlab.com/ci"
mã thông báo = "750c63cba1c269d789bdb33c42b726"
người thực hiện = "docker"
[người chạy.docker]
tls_verify = sai
hình ảnh = "alpine:3.5"
đặc quyền = đúng
vô hiệu hóa bộ nhớ đệm = sai
khối lượng = ["/cache", "/var/run/docker.sock:/var/run/docker.sock"]
[runners.cache]
Sau đây là thông tin về docker:
DEBU[0771] Gọi GET /v1.24/info
Container: 1
Chạy: 1
Tạm dừng: 0
Đã dừng: 0
Hình ảnh: 1
Phiên bản máy chủ: 1.12.6
Trình điều khiển lưu trữ: devicemapper
Tên nhóm: docker-202:1-395267-pool
Kích thước khối Pool: 65,54 kB
Kích thước thiết bị cơ sở: 10,74 GB
Hệ thống tập tin sao lưu: xfs
Tệp dữ liệu: /dev/loop0
Tệp siêu dữ liệu: /dev/loop1
Không gian dữ liệu đã sử dụng: 519 MB
Tổng dung lượng dữ liệu: 107,4 GB
Dung lượng dữ liệu khả dụng: 6.569 GB
Không gian siêu dữ liệu đã sử dụng: 1,397 MB
Tổng dung lượng siêu dữ liệu: 2,147 GB
Dung lượng siêu dữ liệu khả dụng: 2.146 GB
Dung lượng trống tối thiểu của Thin Pool: 10,74 GB
Udev Sync được hỗ trợ: đúng
Đã bật tính năng xóa hoãn: sai
Đã bật chức năng xóa hoãn: sai
Số lượng thiết bị đã xóa bị hoãn: 0
Tệp vòng lặp dữ liệu: /var/lib/docker/devicemapper/devicemapper/data
CẢNH BÁO: Việc sử dụng thiết bị vòng lặp không được khuyến khích cho mục đích sản xuất. Sử dụng `--storage-opt dm.thinpooldev` để chỉ định thiết bị lưu trữ khối tùy chỉnh.
Tệp vòng lặp siêu dữ liệu: /var/lib/docker/devicemapper/devicemapper/metadata
Phiên bản thư viện: 1.02.93-RHEL7 (28-01-2015)
Trình điều khiển ghi nhật ký: tệp json
Trình điều khiển Cgroup: cgroupfs
Các plugin:
Khối lượng: cục bộ
Mạng: cầu nối lớp phủ máy chủ null
Đàn ong: không hoạt động
Thời gian chạy: runc
Thời gian chạy mặc định: runc
Tùy chọn bảo mật:
Phiên bản hạt nhân: 4.4.44-39.55.amzn1.x86_64
Hệ điều hành: Amazon Linux AMI 2016.09
Loại hệ điều hành: Linux
Kiến trúc: x86_64
CPU: 1
Tổng bộ nhớ: 995,2 MiB
Tên: ip-172-31-30-143
Mã số: D6DU:OBWL:R3HK:DSZK:EOYC:5EHS:NU4I:4M3T:H5PL:JWLH:CIPD:I7VW
Thư mục gốc Docker: /var/lib/docker
Chế độ gỡ lỗi (khách hàng): sai
Chế độ gỡ lỗi (máy chủ): đúng
Mô tả tập tin: 20
Goroutine: 27
Thời gian hệ thống: 2017-02-22T11:16:19.042666914Z
Sự kiệnListeners: 0
Đăng ký: https://index.docker.io/v1/
Sổ đăng ký không an toàn:
127.0.0.0/8
Bạn cần phải thêm
dịch vụ:
- docker:dind
đến bạn .gitlab-ci.yml
. Câu lệnh này yêu cầu trình chạy khởi động một container thứ hai (docker:dind) là hình ảnh của một daemon docker đang hoạt động. Nó phải nằm trong bức ảnh thứ 2 thì mới có hiệu quả.
Để biết thêm thông tin, hãy xem dự án ví dụ về docker:https://gitlab.com/gitlab-examples/docker/blob/master/.gitlab-ci.yml
Nó sẽ không hoạt động nếu không có dịch vụ này, vì không có trình nền docker nào đang chạy và bạn không thể chạy nó trên docker:dind
Chạy bản dựng bên trong container vì lệnh chạy sẽ thay thế daemon docker.
Tôi là một lập trình viên xuất sắc, rất giỏi!