返回列表 发布新帖

GitLab Runner在运行Docker执行器时的执行步骤和原理是怎样的呢?

871 2

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
  1. build:
  2.   image: maven:3.6-jdk-8-slim
  3.   stage: prepare
  4.   script:
  5.     - sleep 200
  6.     - mvn package -Dmaven.repo.local=/root/.m2/repository
  7.   artifacts:
  8.     paths:
  9.       - target/
复制代码
假设,我在.gitlab-ci.yml文件中定义了如上内容,那么在runner运行时,会经过哪些步骤呢?

我的猜想是,Runner 服务接收到任务以后,会创建一个maven的容器,并且执行script。但通过逆向启动的容器,发现mvn镜像在启动时,并没有执行script参数,指令如下:
  1. docker run --name=runner-7fk-ryf4n-project-183422-concurrent-0-7ebcb91b16a8df47-build --hostname=runner-7fk-ryf4n-project-183422-concurrent-0 --env=FF_CMD_DISABLE_DELAYED_ERROR_LEVEL_EXPANSION=false --env=FF_NETWORK_PER_BUILD=false --env=FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY=false --env=FF_USE_DIRECT_DOWNLOAD=true --env=FF_SKIP_NOOP_BUILD_STAGES=true --env=FF_USE_FASTZIP=false --env=FF_DISABLE_UMASK_FOR_DOCKER_EXECUTOR=false --env=FF_ENABLE_BASH_EXIT_CODE_CHECK=false --env=FF_USE_WINDOWS_LEGACY_PROCESS_STRATEGY=true --env=FF_USE_NEW_BASH_EVAL_STRATEGY=false --env=FF_USE_POWERSHELL_PATH_RESOLVER=false --env=FF_USE_DYNAMIC_TRACE_FORCE_SEND_INTERVAL=false --env=FF_SCRIPT_SECTIONS=false --env=FF_USE_NEW_SHELL_ESCAPE=false --env=FF_ENABLE_JOB_CLEANUP=false --env=FF_KUBERNETES_HONOR_ENTRYPOINT=false --env=FF_POSIXLY_CORRECT_ESCAPES=false --env=FF_USE_IMPROVED_URL_MASKING=false --env=FF_RESOLVE_FULL_TLS_CHAIN=true --env=FF_DISABLE_POWERSHELL_STDIN=false --env=FF_USE_POD_ACTIVE_DEADLINE_SECONDS=false --env=FF_USE_ADVANCED_POD_SPEC_CONFIGURATION=false --env=FF_SET_PERMISSIONS_BEFORE_CLEANUP=true --env=FF_SECRET_RESOLVING_FAILS_IF_MISSING=true --env=FF_RETRIEVE_POD_WARNING_EVENTS=false --env=CI_JOB_IMAGE=maven:3.6-jdk-8-slim --env=CI_RUNNER_SHORT_TOKEN=7fk-ryf4n --env=CI_BUILDS_DIR=/builds --env=CI_PROJECT_DIR=/builds/ultimate-plan/scenarios/all-in-one-DEMO/benchmarkjava1.2 --env=CI_CONCURRENT_ID=0 --env=CI_CONCURRENT_PROJECT_ID=0 --env=CI_SERVER=yes --env=CI_JOB_STATUS=running --env=CI_JOB_TIMEOUT=3600 --env='CI_SERVER_TLS_CA_FILE=-----BEGIN CERTIFICATE-----
  2. MIIGbzCCBNegAwIBAgIQe/5vYALTqnAbam42Sh5S+zANBgkqhkiG9w0BAQwFADBZ
  3. MQswCQYDVQQGEwJDTjElMCMGA1UEChMcVHJ1c3RBc2lhIFRlY2hub2xvZ2llcywg
  4. SW5jLjEjMCEGA1UEAxMaVHJ1c3RBc2lhIFJTQSBEViBUTFMgQ0EgRzIwHhcNMjMw
  5. OTExMDAwMDAwWhcNMjQwOTE4MjM1OTU5WjAYMRYwFAYDVQQDDA0qLmppaHVsYWIu
  6. Y29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxEvoF3hprvJHHSHJ
  7. fKORBDXV9PDpyRBLwUJk4CCe9UCRfVYM4C8IVV2iWoujZOwey3rL9zABQu3Ic8ak
  8. BHJGy4Zqt5hxeM5kUHkDeRjauJR4fuQvd2YZWfkOCqZORbO7Oq28UrN6G/IhGpO9
  9. bVYW15PDn06MKjksVqdfDxW+E/O0M6cy54EVAywvhZt/R3Kwr5jRypmJGrhAj8ss
  10. g3Ya3Kf30STOKGNa68+Ky1vBwW+q3hznO3Kaw9wd5Iva6l4BikH85nHcjSdeh/pB
  11. oMtICZd4LmnifpJ8taKny8DH0JbVniZQDCD0H50FChZS7lkdSKSAUCOGCR2/yrLf
  12. rSPurQIDAQABo4IC8jCCAu4wHwYDVR0jBBgwFoAUXzp8ERB+DGdxYdyLo7UAA2f1
  13. VxwwHQYDVR0OBBYEFPxIGvG0xSBAD8CcJ9cdtXCVkqQdMA4GA1UdDwEB/wQEAwIF
  14. oDAMBgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjBJ
  15. BgNVHSAEQjBAMDQGCysGAQQBsjEBAgIxMCUwIwYIKwYBBQUHAgEWF2h0dHBzOi8v
  16. c2VjdGlnby5jb20vQ1BTMAgGBmeBDAECATB9BggrBgEFBQcBAQRxMG8wQgYIKwYB
  17. BQUHMAKGNmh0dHA6Ly9jcnQudHJ1c3QtcHJvdmlkZXIuY24vVHJ1c3RBc2lhUlNB
  18. RFZUTFNDQUcyLmNydDApBggrBgEFBQcwAYYdaHR0cDovL29jc3AudHJ1c3QtcHJv
  19. dmlkZXIuY24wJQYDVR0RBB4wHIINKi5qaWh1bGFiLmNvbYILamlodWxhYi5jb20w
  20. ggF8BgorBgEEAdZ5AgQCBIIBbASCAWgBZgB1AHb/iD8KtvuVUcJhzPWHujS0pM27
  21. KdxoQgqf5mdMWjp0AAABioJZ7x8AAAQDAEYwRAIgQDDL8UnhyhzkGabyXVYUKRxq
  22. gHqTeLv/2F5YVhykvlACICZNNhKVAgghg9MsF1qs4AJj5Ew+APtj/I1SzDjm0HqA
  23. AHUA2ra/az+1tiKfm8K7XGvocJFxbLtRhIU0vaQ9MEjX+6sAAAGKglnvbAAABAMA
  24. RjBEAiAU8VsTetWOqc6DyrfCV+60K3d0yD2znHqyM54+xJkc7AIgAm4PPKBabf2X
  25. xZkTN7Xgm8aszYzY3zlw4WoFFvY9MJMAdgDuzdBk1dsazsVct520zROiModGfLzs
  26. 3sNRSFlGcR+1mwAAAYqCWe+ZAAAEAwBHMEUCIAS/FWT106FWif6XTJPa7WliWUni
  27. cj/o3P0PP5zUmdSYAiEA4gIRzpQoSyKGmZ5lR2mCcctx2p3fnjsSof8TZLKLEdUw
  28. DQYJKoZIhvcNAQEMBQADggGBAJlVl6NvI8cNJP2SjMzU5blcmXjeSS2Y0QrKppG6
  29. a7F2uiDMq2lVDSiDdJ9OTE8MUn5IEGJBBXVqMDOyVUnJZbWUxMDxhPeUNZBHUKx7
  30. JTznkRphLlWCXs727XzphZf45oXbm7Kz4XFadyipG+v8wwwNwkWmcBsMKgzJ6sj1
  31. ApBg359l5NwZsOORFuWuvRTcF3pQDFMgFd4XFkPhJQ5l0RincNDOwg88ne0xys7g
  32. 3JE95IOrlkUZIvHNaiMjO2SGo/ZnPRJHFdgnAn/Zjb9WEy8cfgF5YUeaLQxo2Wj/
  33. C7CEQaCb43wSiQPUJG5OggJqub7lxSgF03ErBRW3T59zH2gnFYwgvbrpmwNWSMTo
  34. eqhLBu1V3u7nnnKIH31z8JyAT4SvzHOma9orLIqDSP3Q11yG56PZElNKbOZT/MhO
  35. JEUoQKkRrfW/ZkpJ1sjND8XxQ9ZNl/bC5Xa6DOTpYzLag0bmcO2v6gZvz8TDmXKV
  36. asXWjCe3zOfE8gcek+fL1rbNDA==
  37. -----END CERTIFICATE-----
  38. -----BEGIN CERTIFICATE-----
  39. MIIFBzCCA++gAwIBAgIRALIM7VUuMaC/NDp1KHQ76aswDQYJKoZIhvcNAQELBQAw
  40. ezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
  41. A1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV
  42. BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0yMjAxMTAwMDAwMDBaFw0y
  43. ODEyMzEyMzU5NTlaMFkxCzAJBgNVBAYTAkNOMSUwIwYDVQQKExxUcnVzdEFzaWEg
  44. VGVjaG5vbG9naWVzLCBJbmMuMSMwIQYDVQQDExpUcnVzdEFzaWEgUlNBIERWIFRM
  45. UyBDQSBHMjCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAKjGDe0GSaBs
  46. Yl/VhMaTM6GhfR1TAt4mrhN8zfAMwEfLZth+N2ie5ULbW8YvSGzhqkDhGgSBlafm
  47. qq05oeESrIJQyz24j7icGeGyIZ/jIChOOvjt4M8EVi3O0Se7E6RAgVYcX+QWVp5c
  48. Sy+l7XrrtL/pDDL9Bngnq/DVfjCzm5ZYUb1PpyvYTP7trsV+yYOCNmmwQvB4yVjf
  49. IIpHC1OcsPBntMUGeH1Eja4D+qJYhGOxX9kpa+2wTCW06L8T6OhkpJWYn5JYiht5
  50. 8exjAR7b8Zi3DeG9oZO5o6Qvhl3f8uGU8lK1j9jCUN/18mI/5vZJ76i+hsgdlfZB
  51. Rh5lmAQjD80M9TY+oD4MYUqB5XrigPfFAUwXFGehhlwCVw7y6+5kpbq/NpvM5Ba8
  52. SeQYUUuMA8RXpTtGlrrTPqJryfa55hTuX/ThhX4gcCVkbyujo0CYr+Uuc14IOyNY
  53. 1fD0/qORbllbgV41wiy/2ZUWZQUodqHWkjT1CwIMbQOY5jmrSYGBwwIDAQABo4IB
  54. JjCCASIwHwYDVR0jBBgwFoAUoBEKIz6W8Qfs4q8p74Klf9AwpLQwHQYDVR0OBBYE
  55. FF86fBEQfgxncWHci6O1AANn9VccMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8E
  56. CDAGAQH/AgEAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAiBgNVHSAE
  57. GzAZMA0GCysGAQQBsjEBAgIxMAgGBmeBDAECATBDBgNVHR8EPDA6MDigNqA0hjJo
  58. dHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNy
  59. bDA0BggrBgEFBQcBAQQoMCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmNvbW9k
  60. b2NhLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAHMUom5cxIje2IiFU7mOCsBr2F6CY
  61. eU5cyfQ/Aep9kAXYUDuWsaT85721JxeXFYkf4D/cgNd9+hxT8ZeDOJrn+ysqR7NO
  62. 2K9AdqTdIY2uZPKmvgHOkvH2gQD6jc05eSPOwdY/10IPvmpgUKaGOa/tyygL8Og4
  63. 3tYyoHipMMnS4OiYKakDJny0XVuchIP7ZMKiP07Q3FIuSS4omzR77kmc75/6Q9dP
  64. v4wa90UCOn1j6r7WhMmX3eT3Gsdj3WMe9bYD0AFuqa6MDyjIeXq08mVGraXiw73s
  65. Zale8OMckn/BU3O/3aFNLHLfET2H2hT6Wb3nwxjpLIfXmSVcVd8A58XH0g==
  66. -----END CERTIFICATE-----
  67. -----BEGIN CERTIFICATE-----
  68. MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb
  69. MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
  70. GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj
  71. YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL
  72. MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
  73. BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM
  74. GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
  75. ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua
  76. BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe
  77. 3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4
  78. YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR
  79. rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm
  80. ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU
  81. oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
  82. MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v
  83. QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t
  84. b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF
  85. AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q
  86. GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
  87. Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2
  88. G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi
  89. l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3
  90. smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
  91. -----END CERTIFICATE-----' --env=CI_PIPELINE_ID=2567990 --env=CI_PIPELINE_URL=https://jihulab.com/ultimate-plan/scenarios/all-in-one-DEMO/benchmarkjava1.2/-/pipelines/2567990 --env=CI_JOB_ID=13259688 --env=CI_JOB_URL=https://jihulab.com/ultimate-plan/scenarios/all-in-one-DEMO/benchmarkjava1.2/-/jobs/13259688 --env=CI_JOB_TOKEN=glcbt-64_ACp28ku3WbmRg47qiaMb --env=CI_JOB_STARTED_AT=2024-03-15T11:29:51+08:00 --env=CI_REGISTRY_USER=gitlab-ci-token --env=CI_REGISTRY_PASSWORD=glcbt-64_ACp28ku3WbmRg47qiaMb --env=CI_REPOSITORY_URL=https://gitlab-ci-token:glcbt-64_ACp28ku3WbmRg47qiaMb@jihulab.com/ultimate-plan/scenarios/all-in-one-DEMO/benchmarkjava1.2.git --env=CI_DEPENDENCY_PROXY_USER=gitlab-ci-token --env=CI_DEPENDENCY_PROXY_PASSWORD=glcbt-64_ACp28ku3WbmRg47qiaMb --env=CI_JOB_JWT=eyJraWQiOiJLRFBFeGRUU1Q4YlFuVkNndGVpOEZDeHFGU2hpSXJJWV9Yb3gyRVg2M01vIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJuYW1lc3BhY2VfaWQiOiIyODkzNDIiLCJuYW1lc3BhY2VfcGF0aCI6InVsdGltYXRlLXBsYW4vc2NlbmFyaW9zL2FsbC1pbi1vbmUtREVNTyIsInByb2plY3RfaWQiOiIxODM0MjIiLCJwcm9qZWN0X3BhdGgiOiJ1bHRpbWF0ZS1wbGFuL3NjZW5hcmlvcy9hbGwtaW4tb25lLURFTU8vYmVuY2htYXJramF2YTEuMiIsInVzZXJfaWQiOiIzNjc5NiIsInVzZXJfbG9naW4iOiJjaGlsZWViIiwidXNlcl9lbWFpbCI6ImNoaWxlZWJAMTYzLmNvbSIsInVzZXJfYWNjZXNzX2xldmVsIjoib3duZXIiLCJwaXBlbGluZV9pZCI6IjI1Njc5OTAiLCJwaXBlbGluZV9zb3VyY2UiOiJwdXNoIiwiam9iX2lkIjoiMTMyNTk2ODgiLCJyZWYiOiIyLWZlaS15dS1jb3JheGNlLXNoaSIsInJlZl90eXBlIjoiYnJhbmNoIiwicmVmX3BhdGgiOiJyZWZzL2hlYWRzLzItZmVpLXl1LWNvcmF4Y2Utc2hpIiwicmVmX3Byb3RlY3RlZCI6ImZhbHNlIiwianRpIjoiNDE4YTE0NjQtODQyNS00YTBjLTgyYmMtY2Q3YWQwMjAwYmE2IiwiaXNzIjoiamlodWxhYi5jb20iLCJpYXQiOjE3MTA0NzMzOTEsIm5iZiI6MTcxMDQ3MzM4NiwiZXhwIjoxNzEwNDc2OTkxLCJzdWIiOiJqb2JfMTMyNTk2ODgifQ.vB4-AAIHfiLzJHMDgqxiwgWmpVUFZUGypgZHJuKeRqV7Xa-yIiOl68TUN4mBTQVHrzniZWsbvn7-xX72aU1RpZme0a9MDi4hcGoUykt6RQx-M2eSUN0GDfm1DsvrgL1SjehvhGBLktg9Rqy_BzQdxziNVlnNuZXy2kiF-jLv2yEBUzZk2nZjZR_kaaFc7_Vpvd6GthRX-G4O8NzeK5JR2dKs4jooyKWwz448V4uimtlAlpPxutUg4qsKXB4n6mxkoeGGPDLFBXQwhoXQktVFKOv4kjOXJltZaWYvxnYLYvcY35NWrdzzgk_uDAoZBawVy69OYCKMahvona3v6clvGg --env=CI_JOB_JWT_V1=eyJraWQiOiJLRFBFeGRUU1Q4YlFuVkNndGVpOEZDeHFGU2hpSXJJWV9Yb3gyRVg2M01vIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJuYW1lc3BhY2VfaWQiOiIyODkzNDIiLCJuYW1lc3BhY2VfcGF0aCI6InVsdGltYXRlLXBsYW4vc2NlbmFyaW9zL2FsbC1pbi1vbmUtREVNTyIsInByb2plY3RfaWQiOiIxODM0MjIiLCJwcm9qZWN0X3BhdGgiOiJ1bHRpbWF0ZS1wbGFuL3NjZW5hcmlvcy9hbGwtaW4tb25lLURFTU8vYmVuY2htYXJramF2YTEuMiIsInVzZXJfaWQiOiIzNjc5NiIsInVzZXJfbG9naW4iOiJjaGlsZWViIiwidXNlcl9lbWFpbCI6ImNoaWxlZWJAMTYzLmNvbSIsInVzZXJfYWNjZXNzX2xldmVsIjoib3duZXIiLCJwaXBlbGluZV9pZCI6IjI1Njc5OTAiLCJwaXBlbGluZV9zb3VyY2UiOiJwdXNoIiwiam9iX2lkIjoiMTMyNTk2ODgiLCJyZWYiOiIyLWZlaS15dS1jb3JheGNlLXNoaSIsInJlZl90eXBlIjoiYnJhbmNoIiwicmVmX3BhdGgiOiJyZWZzL2hlYWRzLzItZmVpLXl1LWNvcmF4Y2Utc2hpIiwicmVmX3Byb3RlY3RlZCI6ImZhbHNlIiwianRpIjoiNDE4YTE0NjQtODQyNS00YTBjLTgyYmMtY2Q3YWQwMjAwYmE2IiwiaXNzIjoiamlodWxhYi5jb20iLCJpYXQiOjE3MTA0NzMzOTEsIm5iZiI6MTcxMDQ3MzM4NiwiZXhwIjoxNzEwNDc2OTkxLCJzdWIiOiJqb2JfMTMyNTk2ODgifQ.vB4-AAIHfiLzJHMDgqxiwgWmpVUFZUGypgZHJuKeRqV7Xa-yIiOl68TUN4mBTQVHrzniZWsbvn7-xX72aU1RpZme0a9MDi4hcGoUykt6RQx-M2eSUN0GDfm1DsvrgL1SjehvhGBLktg9Rqy_BzQdxziNVlnNuZXy2kiF-jLv2yEBUzZk2nZjZR_kaaFc7_Vpvd6GthRX-G4O8NzeK5JR2dKs4jooyKWwz448V4uimtlAlpPxutUg4qsKXB4n6mxkoeGGPDLFBXQwhoXQktVFKOv4kjOXJltZaWYvxnYLYvcY35NWrdzzgk_uDAoZBawVy69OYCKMahvona3v6clvGg --env=CI_JOB_JWT_V2=eyJraWQiOiJLRFBFeGRUU1Q4YlFuVkNndGVpOEZDeHFGU2hpSXJJWV9Yb3gyRVg2M01vIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJuYW1lc3BhY2VfaWQiOiIyODkzNDIiLCJuYW1lc3BhY2VfcGF0aCI6InVsdGltYXRlLXBsYW4vc2NlbmFyaW9zL2FsbC1pbi1vbmUtREVNTyIsInByb2plY3RfaWQiOiIxODM0MjIiLCJwcm9qZWN0X3BhdGgiOiJ1bHRpbWF0ZS1wbGFuL3NjZW5hcmlvcy9hbGwtaW4tb25lLURFTU8vYmVuY2htYXJramF2YTEuMiIsInVzZXJfaWQiOiIzNjc5NiIsInVzZXJfbG9naW4iOiJjaGlsZWViIiwidXNlcl9lbWFpbCI6ImNoaWxlZWJAMTYzLmNvbSIsInVzZXJfYWNjZXNzX2xldmVsIjoib3duZXIiLCJwaXBlbGluZV9pZCI6IjI1Njc5OTAiLCJwaXBlbGluZV9zb3VyY2UiOiJwdXNoIiwiam9iX2lkIjoiMTMyNTk2ODgiLCJyZWYiOiIyLWZlaS15dS1jb3JheGNlLXNoaSIsInJlZl90eXBlIjoiYnJhbmNoIiwicmVmX3BhdGgiOiJyZWZzL2hlYWRzLzItZmVpLXl1LWNvcmF4Y2Utc2hpIiwicmVmX3Byb3RlY3RlZCI6ImZhbHNlIiwicnVubmVyX2lkIjoyNTE3NCwicnVubmVyX2Vudmlyb25tZW50Ijoic2VsZi1ob3N0ZWQiLCJzaGEiOiJmNDM4ZWU5N2VjMzA5YjU3YjcwMzgxNGVhMzJlYzIxZjJkNGQxNGE3IiwicHJvamVjdF92aXNpYmlsaXR5IjoicHJpdmF0ZSIsImNpX2NvbmZpZ19yZWZfdXJpIjoiamlodWxhYi5jb20vdWx0aW1hdGUtcGxhbi9zY2VuYXJpb3MvYWxsLWluLW9uZS1ERU1PL2JlbmNobWFya2phdmExLjIvLy5naXRsYWItY2kueW1sQHJlZnMvaGVhZHMvMi1mZWkteXUtY29yYXhjZS1zaGkiLCJjaV9jb25maWdfc2hhIjoiZjQzOGVlOTdlYzMwOWI1N2I3MDM4MTRlYTMyZWMyMWYyZDRkMTRhNyIsImp0aSI6ImNkMGYwY2I5LWY1MWUtNGQzOS04ZjA2LWJmMzRkYmM0MTZjMSIsImlzcyI6Imh0dHBzOi8vamlodWxhYi5jb20iLCJpYXQiOjE3MTA0NzMzOTEsIm5iZiI6MTcxMDQ3MzM4NiwiZXhwIjoxNzEwNDc2OTkxLCJzdWIiOiJwcm9qZWN0X3BhdGg6dWx0aW1hdGUtcGxhbi9zY2VuYXJpb3MvYWxsLWluLW9uZS1ERU1PL2JlbmNobWFya2phdmExLjI6cmVmX3R5cGU6YnJhbmNoOnJlZjoyLWZlaS15dS1jb3JheGNlLXNoaSIsImF1ZCI6Imh0dHBzOi8vamlodWxhYi5jb20ifQ.UxkZuylq0zo9J-U_bCIk50_OKVXsjfG2RMqy6weztVNNWRU4knLk56c3beAqSqllvwD19PSPOSnh_w6UGT22D65_P7twElBe00HxCITmvhGcAMQqoY31aa_72FcVbVOVk-HDyOelQ4VSU1uE5I317svlBxBO-ex5llWYCgfcnKJ1hNbQ2qts2Uq06-cswE3TweCX0fRFjehnTL0mky8eMYx46p2TrFSQXRsRD-s7kzPufs9xt89IxF-ZLphJs8mNG_skBCE54-T9BZtYJwDkiZuEQeThIuizdHjxA21sWkGiZnr6bOzHbpJuMcxRTY2hotTCJsL1IgQeljDZD12n9g --env=CI_JOB_NAME=corax-build --env=CI_JOB_NAME_SLUG=corax-build --env=CI_JOB_STAGE=prepare --env=CI_NODE_TOTAL=1 --env=CI=true --env=GITLAB_CI=true --env=CI_COMPONENT_FQDN=jihulab.com --env=CI_SERVER_FQDN=jihulab.com --env=CI_SERVER_URL=https://jihulab.com --env=CI_SERVER_HOST=jihulab.com --env=CI_SERVER_PORT=443 --env=CI_SERVER_PROTOCOL=https --env=CI_SERVER_SHELL_SSH_HOST=jihulab.com --env=CI_SERVER_SHELL_SSH_PORT=22 --env=CI_SERVER_NAME=GitLab --env=CI_SERVER_VERSION=16.10.0-pre --env=CI_SERVER_VERSION_MAJOR=16 --env=CI_SERVER_VERSION_MINOR=10 --env=CI_SERVER_VERSION_PATCH=0 --env=CI_SERVER_REVISION=5a4aaeb8d2a --env=GITLAB_FEATURES=dingtalk_integration,disable_download_button,feishu_bot_integration,real_lines_of_code,performance_analytics,password_expiration,audit_events,blocked_issues,board_iteration_lists,code_owners,code_review_analytics,full_codequality_report,group_activity_analytics,group_bulk_edit,issuable_default_templates,issue_weights,iterations,ldap_group_sync,merge_request_approvers,milestone_charts,multiple_issue_assignees,multiple_ldap_servers,multiple_merge_request_assignees,multiple_merge_request_reviewers,project_merge_request_analytics,protected_refs_for_users,push_rules,resource_access_token,seat_link,usage_quotas,visual_review_app,wip_limits,zoekt_code_search,blocked_work_items,description_diffs,send_emails_from_admin_area,repository_size_limit,maintenance_mode,scoped_issue_board,contribution_analytics,group_webhooks,member_lock,elastic_search,repository_mirrors,ai_chat,adjourned_deletion_for_projects_and_groups,admin_audit_log,auditor_user,blocking_merge_requests,board_assignee_lists,board_milestone_lists,ci_secrets_management,ci_pipeline_cancellation_restrictions,cluster_agents_ci_impersonation,cluster_agents_user_impersonation,cluster_deployments,code_owner_approval_required,code_suggestions,commit_committer_check,commit_committer_name_check,compliance_framework,custom_compliance_frameworks,custom_file_templates,custom_project_templates,cycle_analytics_for_groups,cycle_analytics_for_projects,db_load_balancing,default_branch_protection_restriction_in_groups,default_project_deletion_protection,delete_unconfirmed_users,dependency_proxy_for_packages,disable_name_update_for_users,disable_personal_access_tokens,domain_verification,epics,extended_audit_events,external_authorization_service_api_management,feature_flags_code_references,file_locks,geo,generic_alert_fingerprinting,git_two_factor_enforcement,group_allowed_email_domains,group_coverage_reports,group_forking_protection,group_milestone_project_releases,group_project_templates,group_repository_analytics,group_saml,group_scoped_ci_variables,ide_schema_config,incident_metric_upload,instance_level_scim,jira_issues_integration,ldap_group_sync_filter,merge_request_performance_metrics,admin_merge_request_approvers_rules,merge_trains,metrics_reports,metrics_observability,logs_observability,multiple_alert_http_integrations,multiple_approval_rules,multiple_group_issue_boards,object_storage,microsoft_group_sync,operations_dashboard,package_forwarding,pages_size_limit,pages_multiple_versions,productivity_analytics,project_aliases,protected_environments,reject_non_dco_commits,reject_unsigned_commits,remote_development,saml_group_sync,service_accounts,scoped_labels,smartcard_auth,ssh_certificates,swimlanes,target_branch_rules,type_of_work_analytics,minimal_access_role,unprotection_restrictions,ci_project_subscriptions,incident_timeline_view,oncall_schedules,escalation_policies,zentao_issues_integration,coverage_check_approval_rule,issuable_resource_links,group_protected_branches,group_level_merge_checks_setting,oidc_client_groups_claim,disable_deleting_account_for_users,disable_private_profiles,group_saved_replies,group_ip_restriction,issues_analytics,password_complexity,group_wikis,email_additional_text,custom_file_templates_for_namespace,incident_sla,export_user_permissions,cross_project_pipelines,feature_flags_related_issues,merge_pipelines,ci_cd_projects,github_integration,ones_issues_integration,ligaai_issues_integration,milestone_and_iteration_in_epic,monorepo,ai_config_chat,ai_features,ai_git_command,ai_analyze_ci_job_failure,ai_agents,api_discovery,api_fuzzing,auto_rollback,breach_and_attack_simulation,fill_in_merge_request_template,cluster_image_scanning,external_status_checks,combined_project_analytics_dashboards,compliance_pipeline_configuration,container_scanning,credentials_inventory,custom_roles,dast,dependency_scanning,dora4_analytics,epic_colors,enterprise_templates,environment_alerts,evaluate_group_level_compliance_pipeline,explain_code,external_audit_events,experimental_features,generate_description,generate_commit_message,generate_test_file,ai_generate_cube_query,git_abuse_rate_limit,group_ci_cd_analytics,group_level_compliance_dashboard,group_level_analytics_dashboard,incident_management,inline_codequality,insights,issuable_health_status,issues_completed_analytics,jira_vulnerabilities_integration,jira_issue_association_enforcement,kubernetes_cluster_vulnerabilities,license_scanning,okrs,personal_access_token_expiration_policy,pre_receive_secret_detection,product_analytics,project_quality_summary,project_level_analytics_dashboard,prometheus_alerts,quality_management,related_epics,release_evidence_test_artifacts,report_approver_rules,required_ci_templates,requirements,runner_maintenance_note,runner_performance_insights,runner_upgrade_management,runner_upgrade_management_for_namespace,sast,sast_iac,sast_custom_rulesets,sast_fp_reduction,secret_detection,security_configuration_in_ui,security_dashboard,security_on_demand_scans,security_orchestration_policies,security_training,ssh_key_expiration_policy,summarize_mr_changes,summarize_my_mr_code_review,summarize_new_merge_request,summarize_notes,summarize_submitted_review,stale_runner_cleanup_for_namespace,status_page,suggested_reviewers,subepics,tracing,unique_project_download_limit,vulnerability_auto_fix,vulnerability_finding_signatures,coverage_fuzzing,devops_adoption,group_level_devops_adoption,instance_level_devops_adoption --env=CI_PROJECT_ID=183422 --env=CI_PROJECT_NAME=benchmarkjava1.2 --env=CI_PROJECT_TITLE=BenchmarkJava1.2 --env=CI_PROJECT_DESCRIPTION= --env=CI_PROJECT_PATH=ultimate-plan/scenarios/all-in-one-DEMO/benchmarkjava1.2 --env=CI_PROJECT_PATH_SLUG=ultimate-plan-scenarios-all-in-one-demo-benchmarkjava1-2 --env=CI_PROJECT_NAMESPACE=ultimate-plan/scenarios/all-in-one-DEMO --env=CI_PROJECT_NAMESPACE_ID=289342 --env=CI_PROJECT_ROOT_NAMESPACE=ultimate-plan --env=CI_PROJECT_URL=https://jihulab.com/ultimate-plan/scenarios/all-in-one-DEMO/benchmarkjava1.2 --env=CI_PROJECT_VISIBILITY=private --env=CI_PROJECT_REPOSITORY_LANGUAGES=java,html,javascript,shell,batchfile --env=CI_PROJECT_CLASSIFICATION_LABEL= --env=CI_DEFAULT_BRANCH=main --env=CI_CONFIG_PATH=.gitlab-ci.yml --env=CI_PAGES_DOMAIN=pages.jihulab.net --env=CI_PAGES_URL=https://benchmarkjava1-2-ultimate-plan-scenarios-all-in--ec6b57b31328a6.pages.jihulab.net --env=CI_REGISTRY=registry.jihulab.com --env=CI_REGISTRY_IMAGE=registry.jihulab.com/ultimate-plan/scenarios/all-in-one-demo/benchmarkjava1.2 --env=CI_DEPENDENCY_PROXY_SERVER=jihulab.com:443 --env=CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX=jihulab.com:443/ultimate-plan/dependency_proxy/containers --env=CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX=jihulab.com:443/ultimate-plan/scenarios/all-in-one-demo/dependency_proxy/containers --env=CI_API_V4_URL=https://jihulab.com/api/v4 --env=CI_API_GRAPHQL_URL=https://jihulab.com/api/graphql --env=CI_TEMPLATE_REGISTRY_HOST=registry.gitlab.cn --env=CI_PIPELINE_IID=48 --env=CI_PIPELINE_SOURCE=push --env=CI_PIPELINE_CREATED_AT=2024-03-15T11:20:52+08:00 --env=CI_PIPELINE_NAME= --env=CI_COMMIT_SHA=f438ee97ec309b57b703814ea32ec21f2d4d14a7 --env=CI_COMMIT_SHORT_SHA=f438ee97 --env=CI_COMMIT_BEFORE_SHA=3d486d5ff18ac567033f6f5e503dc87adf8788ea --env=CI_COMMIT_REF_NAME=2-fei-yu-coraxce-shi --env=CI_COMMIT_REF_SLUG=2-fei-yu-coraxce-shi --env=CI_COMMIT_BRANCH=2-fei-yu-coraxce-shi --env='CI_COMMIT_MESSAGE=Corax调用自动生成项目名称及任务' --env='CI_COMMIT_TITLE=Corax调用自动生成项目名称及任务' --env=CI_COMMIT_DESCRIPTION= --env=CI_COMMIT_REF_PROTECTED=false --env=CI_COMMIT_TIMESTAMP=2024-03-15T03:20:51+00:00 --env='CI_COMMIT_AUTHOR=Liberty <chileeb@163.com>' --env='CI_OPEN_MERGE_REQUESTS=ultimate-plan/scenarios/all-in-one-DEMO/benchmarkjava1.2!3' --env=CI_RUNNER_ID=25174 --env=CI_RUNNER_DESCRIPTION=feysh-docker-runner --env='CI_RUNNER_TAGS=["feysh-docker-runner"]' --env=GITLAB_USER_ID=36796 --env=GITLAB_USER_EMAIL=chileeb@163.com --env=GITLAB_USER_LOGIN=chileeb --env=GITLAB_USER_NAME=Liberty --env=CI_DISPOSABLE_ENVIRONMENT=true --env=CI_RUNNER_VERSION=16.2.1 --env=CI_RUNNER_REVISION=674e0e29 --env=CI_RUNNER_EXECUTABLE_ARCH=linux/amd64 --env=RUNNER_TEMP_PROJECT_DIR=/builds/ultimate-plan/scenarios/all-in-one-DEMO/benchmarkjava1.2.tmp --volume=/cache,/root/.m2/repository:/root/.m2/repository --volume=runner-7fk-ryf4n-project-183422-concurrent-0-cache-c33bcaa1fd2c77edfc3893b41966cea8:/builds --restart=no --label='com.gitlab.gitlab-runner.job.ref=2-fei-yu-coraxce-shi' --label='com.gitlab.gitlab-runner.job.sha=f438ee97ec309b57b703814ea32ec21f2d4d14a7' --label='com.gitlab.gitlab-runner.managed=true' --label='com.gitlab.gitlab-runner.job.url=https://jihulab.com/ultimate-plan/scenarios/all-in-one-DEMO/benchmarkjava1.2/-/jobs/13259688' --label='com.gitlab.gitlab-runner.project.id=183422' --label='com.gitlab.gitlab-runner.runner.local_id=0' --label='com.gitlab.gitlab-runner.type=build' --label='com.gitlab.gitlab-runner.job.id=13259688' --label='com.gitlab.gitlab-runner.pipeline.id=2567990' --label='com.gitlab.gitlab-runner.runner.id=7fk-ryf4n' --label='com.gitlab.gitlab-runner.job.before_sha=3d486d5ff18ac567033f6f5e503dc87adf8788ea' --runtime=runc sha256:f3f54c8fc76f35e53616ec989079d0b406ae2a193678191a22f18db37b03deea sh -c 'if [ -x /usr/local/bin/bash ]; then
  92.         exec /usr/local/bin/bash
  93. elif [ -x /usr/bin/bash ]; then
  94.         exec /usr/bin/bash
  95. elif [ -x /bin/bash ]; then
  96.         exec /bin/bash
  97. elif [ -x /usr/local/bin/sh ]; then
  98.         exec /usr/local/bin/sh
  99. elif [ -x /usr/bin/sh ]; then
  100.         exec /usr/bin/sh
  101. elif [ -x /bin/sh ]; then
  102.         exec /bin/sh
  103. elif [ -x /busybox/sh ]; then
  104.         exec /busybox/sh
  105. else
  106.         echo shell not found
  107.         exit 1
  108. fi

  109. '
复制代码
此时,想问一个问题,Runner在执行时,是如何定位到代码的根路径的呢?
猜想:创建的容器包含了$CI_PROJECT_DIR环境变量,那么容器启动后,每条指令都是通过docker exec container /bin/bash cd $CI_PROJECT_DIR && scriptX来执行的吗?
回复

使用道具 举报

评论2

phuLv.2 发表于 2024-4-9 13:51:45 | 显示全部楼层
浏览了一下 runner 源代码,runner 应该是先创建容器、之后通过 docker api 连接进去执行 script 步骤:

https://jihulab.com/gitlab-cn/gi ... t.go?ref_type=heads
回复

使用道具 举报

冀利斌ᵇᵉᵗᵗᵉʳ楼主Lv.2 发表于 2024-4-12 10:29:31 | 显示全部楼层
phu 发表于 2024-4-9 13:51
浏览了一下 runner 源代码,runner 应该是先创建容器、之后通过 docker api 连接进去执行 script 步骤:

h ...

感谢,我学习一下!
回复

使用道具 举报

意见建议

Email:forum@gitlab.cn
  • 关注公众号
  • 添加专业顾问
Copyright © 2001-2024 极狐GitLab论坛 版权所有 All Rights Reserved. 鄂ICP备2021008419号-1|鄂公网安备42018502006137号
关灯 快速发帖
扫一扫添加专业顾问
返回顶部
快速回复 返回顶部 返回列表