पर कैश के साथ गिटलाब सीआई रनर कॉन्फ़िगरेशन मुझे गिटलाब सीआई में नौकरियों के बीच कैश या कलाकृतियों को ले जाने के लिए प्रतीत नहीं होता है। मुझे संदेह है कि यह मेरी विन्यास के साथ कुछ करने के लिए है, लेकिन मुझे यकीन नहीं है कि क्या। मैं निम्नलिखित डॉकर-कंपोज़ कॉन्फ़िगरेशन का उपयोग करके, डॉकर में दोनों गिटलाब और गिटलाब-सीआई-मल्टीरुनर चला रहा हूं।डॉकर
version: '2'
services:
gitlab:
image: sameersbn/gitlab:8.5.1
links:
- redis:redisio
- postgresql:postgresql
ports:
- "10080:80"
- "10022:22"
environment:
...
volumes:
- gitlab_data:/home/git/data
gitlab-ci-runner:
restart: always
image: gitlab/gitlab-runner
volumes:
- gitlab_runner_config_data:/etc/gitlab-runner
- /var/run/docker.sock:/var/run/docker.sock
- /etc/nginx/ssl/gitlab.crt:/etc/gitlab-runner/certs/ca.crt
- /etc/ssh:/ssh
links:
- gitlab:gitlab
redis:
...
postgresql:
...
volumes:
postgresql_data:
redis_data:
gitlab_data:
gitlab_runner_config_data:
धावक विन्यास (config.toml
) है:
concurrent = 1
[[runners]]
name = "docker"
url = <public gitlab url>/ci
token = <gitlab token>
tls-ca-file = "/etc/gitlab-runner/certs/ca.crt"
executor = "docker"
[runners.docker]
image = "docker-bash"
volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
docker-bash
छवि के लिए भेजा सिर्फ आधिकारिक docker:1.10 बैश के साथ छवि है मैं संक्षिप्तता के लिए डेटाबेस config और कुछ वातावरण चर बाहर छोड़ दिया है स्थापित।
- भागो
npm install
और सरकारी node:5 छवि में परीक्षण:मेरे निर्माण प्रक्रिया 3 चरणों के होते हैं। अभी के लिए, मैंने तैनाती का परीक्षण करने के लिए इस चरण को छोड़ दिया है।
- कोड
- युक्त डॉकर छवि बनाएं, निर्मित सर्वर पर निर्मित छवि को तैनात करने के लिए एक custome निर्मित उत्तरदायी डॉकर छवि के माध्यम से उत्तरदायी का उपयोग करें।
.gitlab-ci.yml
फ़ाइल इस तरह दिखता है:
variables:
FULL_IMAGE_TAG: deploy-$CI_BUILD_REF_NAME:$CI_BUILD_ID-$CI_BUILD_REF
IMAGE_FILE: deploy-$CI_BUILD_REF_NAME.tar.gz
cache:
paths:
- $IMAGE_FILE
build:
stage: build
script:
- docker build -t $FULL_IMAGE_TAG .
- docker save $FULL_IMAGE_TAG | gzip -cf - > $IMAGE_FILE
artifacts:
paths:
- $IMAGE_FILE
deploy:
stage: deploy
image: ansible-ssh
script:
- ls
- ansible-playbook -e image_file=$IMAGE_FILE -e branch=$CI_BUILD_REF_NAME -e full_image_name=$FULL_IMAGE_TAG deploy-playbook.yml
only:
- develop
- master
आप देख सकते हैं, संकुचित डोकर छवि दोनों कैश और कलाकृतियों वर्गों में यहां के लिए जाना जाता है, लेकिन नहीं वास्तव में तैनाती चरण में उपलब्ध है , जहां जवाब को दूरस्थ मशीन पर कॉपी करना है। मैंने ls
कमांड को शामिल करने का प्रयास किया है, इसलिए फ़ोल्डर सामग्री की जांच करें और फ़ाइल स्पष्ट रूप से वहां नहीं है, लेकिन यह निश्चित रूप से बनाया गया है और मैं इसे गिटलैब यूआई से डाउनलोड कर सकता हूं।
gitlab-ci-multi-runner 1.0.4 (014aa8c)
Using Docker executor with image ansible-ssh ...
Pulling docker image ansible-ssh ...
WARNING: Cannot pull the latest version of image ansible-ssh : Error: image library/ansible-ssh not found
WARNING: Locally found image will be used instead.
Running on runner-59d43cf3-project-8-concurrent-0 via 381c2ea97744...
Fetching changes...
Removing artifacts.zip
Removing deploy-develop.tar.gz
HEAD is now at 6009bd0 test
Checking out 6009bd0f as develop...
HEAD is now at 6009bd0... test
$ ls
Dockerfile
deploy-playbook.yml
server
$ ansible-playbook -e image_file=$IMAGE_FILE -e branch=$CI_BUILD_REF_NAME -e full_image_name=$FULL_IMAGE_TAG deploy-playbook.yml
Using /etc/ansible/ansible.cfg as config file
1 plays in deploy-playbook.yml
PLAY ***************************************************************************
TASK [setup] *******************************************************************
ok: [deploy-host]
TASK [copy docker image] *******************************************************
task path: /builds/test/test/deploy-playbook.yml:44
fatal: [deploy-host]: FAILED! => {"changed": false, "failed": true, "msg": "could not find src=/builds/test/test/deploy-develop.tar.gz"}
NO MORE HOSTS LEFT *************************************************************
to retry, use: --limit @deploy-playbook.retry
PLAY RECAP *********************************************************************
deploy-host : ok=1 changed=0 unreachable=0 failed=1
ERROR: Build failed with: exit code 1
मुझे लगता है कि मैं की स्थापना कर रहा हूँ नहीं या धावक सही ढंग से उपयोग है, लेकिन मैं वास्तव में साधारण मामलों परे कुछ भी करने के लिए दस्तावेज में ज्यादा नहीं मिल रहा है और मैं डॉन ': यहाँ तैनाती नौकरी से लॉग है इस उपकरण को अच्छी तरह से पता नहीं है कि यह सब कैसे हुड के नीचे एक साथ फिट बैठता है।
यकीन चरणों एक को क्रियान्वित कर रहे हैं के बाद अन्य आप चरणों को जोड़ने का प्रयास किया जा करने के लिए: - निर्माण - तैनात – Pascal
मैंने किया, लेकिन मैं जिस क्रम में वे में चलाने के देख सकते हैं और यह ठीक है। – aquavitae
क्या होगा यदि आप 'तैनाती' नौकरी के लिए चरण 'कलाकृतियों' जोड़ते हैं? या इसे 'कैश' से नीचे ले जाएं ताकि यह सभी नौकरियों को प्रभावित करेगा? दूसरा सवाल यह है कि, क्या आप सुनिश्चित हैं कि 'कैश' और 'कलाकृतियों' दोनों एक ही पथ पर इंगित कर सकते हैं? मुझे नहीं पता, मैं सिर्फ तर्क के साथ आपकी मदद करने की कोशिश कर रहा हूं। ;) –