image/services/environment/inherit
準備工作註冊docker類型的runner
gitlab-runner register \
--non-interactive \
--executor "docker" \
--docker-image alpine:latest \
--url "http://192.168.1.200:30088/" \
--registration-token "JRzzw2j1Ji6aBjwvkxAv" \
--description "docker-runner" \
--tag-list "newdocker" \
--run-untagged="true" \
--locked="false" \
--docker-privileged \
--access-level="not_protected"
[[runners]]
name = "docker-runner"
url = "http://192.168.1.200:30088/"
token = "xuaLZD7xUVviTsyeJAWh"
executor = "docker"
[runners.custom_build_dir]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
[runners.docker]
pull_policy = "if-not-present"
tls_verify = false
image = "alpine:latest"
privileged = true
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0
image
默認在註冊runner的時候需要填寫一個基礎的鏡像,請記住一點只要使用執行器爲docker類型的runner所有的操作運行都會在容器中運行。 如果全局指定了images則所有作業使用此image創建容器並在其中運行。 全局未指定image,再次查看job中是否有指定,如果有此job按照指定鏡像創建容器並運行,沒有則使用註冊runner時指定的默認鏡像。
#image: maven:3.6.3-jdk-8
before_script:
- ls
build:
image: maven:3.6.3-jdk-8
stage: build
tags:
- newdocker
script:
- ls
- sleep 2
- echo "mvn clean "
- sleep 10
deploy:
stage: deploy
tags:
- newdocker
script:
- echo "deploy"
services
工作期間運行的另一個Docker映像,並link到image
關鍵字定義的Docker映像。這樣,您就可以在構建期間訪問服務映像.
服務映像可以運行任何應用程序,但是最常見的用例是運行數據庫容器,例如mysql
。與每次安裝項目時都安裝mysql
相比,使用現有映像並將其作爲附加容器運行更容易,更快捷。
services:
- name: mysql:latest
alias: mysql-1
environment
deploy to production:
stage: deploy
script: git push production HEAD:master
environment:
name: production
url: https://prod.example.com
inherit
使用或禁用全局定義的環境變量(variables)或默認值(default)。
使用true、false決定是否使用,默認爲true
inherit:
default: false
variables: false
繼承其中的一部分變量或默認值使用list
inherit:
default:
- parameter1
- parameter2
variables:
- VARIABLE1
- VARIABLE2
一起學習呀: