Tôi cố gắng thiết lập trình chạy gitlab trên MacBook M1 của mình để thử nghiệm môi trường. Quy trình công việc CI của tôi khá đơn giản: xây dựng
-> kiểm tra
-> triển khai
. Tôi sử dụng trình thực thi docker và để kiểm tra các tác vụ tôi sử dụng soạn thảo docker
vì tôi phải triển khai cơ sở dữ liệu bên cạnh dịch vụ mà tôi muốn kiểm tra.
CI của tôi hoạt động hoàn hảo trên EC2 chạy Ubuntu. Nhưng khi tôi cố chạy trình chạy của mình trên macOS, ổ đĩa ./backend của tôi không được liên kết với/app.
tôi đã cố gắng ls/ứng dụng
trên phụ trợ
container và với EC2, tất cả các tệp và thư mục đều ở đây nhưng không phải khi tôi chạy trình chạy trên macOS.
gitlab-ci.yml (đây chỉ là backend_test
phần:
kiểm tra_phụ trợ:
giai đoạn: kiểm tra
nhu cầu: ["build_backend_image"]
hình ảnh: docker
dịch vụ:
- docker: dind
before_script:
- đăng nhập docker -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
- mkdir -p $DOCKER_CONFIG/cli-plugin
- apk thêm cuộn tròn
- curl -SL https://github.com/docker/compose/releases/download/v2.3.3/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
- chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
kịch bản:
- docker soạn -f docker-compose-ci.yml up -d db
- docker exec db sh mongo_init.sh
- docker soạn -f docker-compose-ci.yml up -d phụ trợ
- pwd
- ls
- phụ trợ ls
- pwd phụ trợ docker exec
- phụ trợ docker exec ls -l
- phụ trợ docker exec ls / -l
- cài đặt pip3 phụ trợ docker exec --no-cache-dir --upgrade -r tests-test.txt
- docker exec backend pytest test --junitxml=report.xml -p no:cacheprovider
gián đoạn: đúng
hiện vật:
khi nào: luôn luôn
báo cáo:
Junit: backend/report.xml
quy tắc:
- nếu: $CI_PIPELINE_SOURCE == 'merge_request_event'
- nếu: $CI_COMMIT_BRANCH == 'phát triển'
- nếu: $CI_COMMIT_BRANCH == 'chính chủ'
gitlab-runner/config.toml:
đồng thời = 2
kiểm tra_khoảng = 0
[phiên_máy chủ]
phiên_thời gian chờ = 1800
[[người chạy]]
tên = "Macbook"
url = "https://gitlab.com/"
mã thông báo = "xxxxxxxxxx"
người thi hành = "docker"
[runners.custom_build_dir]
[người chạy.cache]
[runners.cache.s3]
[runners.cache.gcs]
[runners.cache.azure]
[người chạy.docker]
tls_verify = sai
hình ảnh = "docker:20.10.13"
đặc quyền = đúng
disable_entrypoint_overwrite = false
oom_kill_disable = sai
vô hiệu hóa_cache = sai
volume = ["/certs/client", "/cache"]
shm_size = 0
Đầu ra ls của người chạy EC2:
phụ trợ $ docker exec ls /ứng dụng -l
tổng số 36
-rw-rw-rw- 1 gốc gốc 285 ngày 3 tháng 6 15:30 Dockerfile
-rw-rw-rw- 1 gốc gốc 325 ngày 20 tháng 5 23:49 DockerfileTest
-rw-rw-rw- 1 gốc gốc 48 ngày 20 tháng 5 23:49 __init__.py
drwxrwxrwx 11 root gốc 4096 4 17:17 ngày 4 tháng 6
-rw-rw-rw- 1 gốc gốc 4286 ngày 4 tháng 6 16:41 favicon.ico
-rw-rw-rw- 1 gốc gốc 33 ngày 4 tháng 6 16:41 yêu cầu-test.txt
-rw-rw-rw- 1 gốc gốc 1673 ngày 4 tháng 6 16:41 tests.txt
drwxrwxrwx 6 gốc gốc 4096 ngày 4 tháng 6 16:41 kiểm tra
đầu ra ls của người chạy macOS:
phụ trợ $ docker exec ls /ứng dụng -l
tổng số 0
docker-compose-ci.yml:
dịch vụ:
phụ trợ:
container_name: phụ trợ
hình ảnh: $CI_REGISTRY_IMAGE/phụ trợ:$CI_COMMIT_SHA
khối lượng:
- ./phụ trợ:/ứng dụng
mạng:
mặc định:
cổng:
- 8000:8000
- 587:587
- 443:443
phụ thuộc:
- db
đb:
container_name: db
hình ảnh: mongo
khối lượng:
- ./mongo_init.sh:/mongo_init.sh:ro
mạng:
mặc định:
môi trường:
MONGO_INITDB_DATABASE: xxxxxxx
MONGO_INITDB_ROOT_USERNAME: quản trị viên
MONGO_INITDB_ROOT_PASSWORD: quản trị viên
cổng:
- 27017:27017
mạng:
mặc định:
tài xế: cầu