{"id":1926,"date":"2022-03-08T14:51:50","date_gmt":"2022-03-08T14:51:50","guid":{"rendered":"https:\/\/www.ipcpu.com\/?p=1926"},"modified":"2022-08-24T14:53:11","modified_gmt":"2022-08-24T14:53:11","slug":"gitlab-cicd-docker-cache","status":"publish","type":"post","link":"https:\/\/c.ipcpu.com\/2022\/03\/gitlab-cicd-docker-cache\/","title":{"rendered":"\u4f7f\u7528gitlab CICD\u6784\u5efaDocker\u955c\u50cf\u4e2d\u7684go\u8bed\u8a00\u7f13\u5b58"},"content":{"rendered":"

\u672c\u6587\u4ee5golang\u8bed\u8a00\u4e3a\u4f8b\uff0c\u4ecb\u7ecd\u4e0b\u7f13\u5b58\u76ee\u5f55\u7684\u6620\u5c04\uff0c\u5176\u4ed6\u8bed\u8a00\u4f8b\u5982nodejs\u7684npm\u4e5f\u5b58\u5728\u7c7b\u4f3c\u7684\u95ee\u9898\u3002<\/p>\n

\u4e00\u3001\u6982\u8ff0<\/h2>\n

\u5728\u4f7f\u7528Gitlab CICD\u6784\u5efaDocker\u955c\u50cf\u7684\u8fc7\u7a0b\u4e2d\uff0c\u6211\u4eec\u4e00\u822c\u4f1a\u91c7\u7528DooD\u6216\u8005DinD\u7684\u65b9\u5f0f\u6765\u8fd0\u884crunner\uff0c\u65e0\u8bba\u54ea\u4e00\u79cd\u65b9\u5f0f\uff0cDocker\u73af\u5883\u90fd\u662f\u5168\u65b0\u7684\u573a\u666f\uff0c\u6ca1\u6709\u7f13\u5b58\uff1b\u8fd9\u662f\u4f18\u70b9\u4e5f\u662f\u7f3a\u70b9\uff0c\u4f18\u70b9\u662f\u73af\u5883\u5e72\u51c0\u4e0d\u4f1a\u6709\u5e72\u6270\u56e0\u7d20\uff0c\u7f3a\u70b9\u4e5f\u5f88\u660e\u663e\uff0c\u6ca1\u6709\u7f13\u5b58\uff0c\u6240\u6709\u7684\u4f9d\u8d56\u5305\u90fd\u8981\u91cd\u65b0\u4e0b\u8f7d\uff0c\u8981\u662f\u9047\u4e0a\u7f51\u7edc\u73af\u5883\u4e0d\u597d\uff0c\u6784\u5efa\u90fd\u9700\u8981\u597d\u51e0\u4e2a\u5c0f\u65f6\u3002
\n\u4f46\u662fDooD\u6bd4DinD\u6709\u4e2a\u4f18\u52bf\uff0c\u5c31\u662f\u53ef\u4ee5\u6302\u8f7d\u5bbf\u4e3b\u673a\u7684\u76ee\u5f55\u8fdb\u884c\u5171\u4eab\uff0c\u7279\u522b\u9002\u5408\u9700\u8981\u4e0b\u8f7d\u5305\u7684\u7f13\u5b58\u76ee\u5f55\u3002<\/p>\n

\u4e8c\u3001Gitlab Runner\u4e2d\u8bbe\u7f6e\u76ee\u5f55\u5171\u4eab<\/h2>\n

\u6211\u4eec\u4ee5DooD\u4e3a\u4f8b\uff0c\u8981\u5b9e\u73b0\u5728Runner\u5bb9\u5668\u4e2d\u6302\u8f7d\u955c\u50cf\uff0c\u9700\u8981\u5728gitlab-runner\u7684\u914d\u7f6e\u4e2d\u8fdb\u884c\u8bbe\u7f6e\u3002
\n\u914d\u7f6e\u6587\u4ef6 \/etc\/gitlab-runner\/config.toml
\n\u5176\u4e2d\u7684volume\u5b57\u6bb5\u8bbe\u7f6e\u6210\u5982\u4e0b\uff1a<\/p>\n

\n
 volumes = [\"\/var\/run\/docker.sock:\/var\/run\/docker.sock\", \"\/cache\", \"\/data\/cache\/go\/pkg\/mod\/:\/go\/pkg\/mod\/\"]<\/code><\/pre>\n<\/div>\n

\u7136\u540e\u9700\u8981\u91cd\u542fgitlab-runner<\/p>\n

\n
systemctl restart gitlab-runner<\/code><\/pre>\n<\/div>\n

\u4e09\u3001\u6548\u679c<\/h2>\n

\u6211\u4eec\u4ece\u5bbf\u4e3b\u673a\u76ee\u5f55\u4e2d\u53ef\u4ee5\u770b\u5230\u5df2\u7ecf\u7f13\u5b58\u7684\u5305\uff0c\u6784\u5efa\u8fc7\u7a0b\u786e\u5b9e\u8282\u7701\u4e86\u4e0d\u5c11\u3002
\n<\/p>\n

\u56db\u3001\u5404\u79cd\u8bed\u8a00\u7f13\u5b58\u76ee\u5f55<\/h2>\n

golang:1.18 \u5b98\u65b9\u955c\u50cf\u4e2dGOPATH=\"\/go\"\uff0c\u4ed6\u7684\u5305\u7f13\u5b58\u76ee\u5f55\u662f\uff1a$GOPATH\/pkg\/mod \u3002
\nnode:18 \u5b98\u65b9\u955c\u50cf\u4e2d\uff0cnpm\u7f13\u5b58\u76ee\u5f55\u662f cache = \"\/root\/.npm\" \u3002<\/p>\n

\u8f6c\u8f7d\u8bf7\u6ce8\u660e\uff1aIPCPU-\u7f51\u7edc\u4e4b\u8def<\/a> » \u4f7f\u7528gitlab CICD\u6784\u5efaDocker\u955c\u50cf\u4e2d\u7684go\u8bed\u8a00\u7f13\u5b58<\/a><\/p>","protected":false},"excerpt":{"rendered":"

\u672c\u6587\u4ee5golang\u8bed\u8a00\u4e3a\u4f8b\uff0c\u4ecb\u7ecd\u4e0b\u7f13\u5b58\u76ee\u5f55\u7684\u6620\u5c04\uff0c\u5176\u4ed6\u8bed\u8a00\u4f8b\u5982nodejs\u7684npm\u4e5f\u5b58\u5728\u7c7b\u4f3c\u7684\u95ee\u9898\u3002 \u4e00\u3001\u6982\u8ff0 \u5728\u4f7f\u7528Gitlab CICD\u6784\u5efaDocker\u955c\u50cf\u7684\u8fc7\u7a0b\u4e2d\uff0c\u6211\u4eec\u4e00\u822c\u4f1a\u91c7\u7528DooD\u6216\u8005DinD\u7684\u65b9\u5f0f\u6765\u8fd0\u884crunner\uff0c\u65e0\u8bba\u54ea\u4e00\u79cd\u65b9\u5f0f\uff0cDocker\u73af\u5883\u90fd\u662f\u5168\u65b0\u7684\u573a\u666f\uff0c\u6ca1\u6709\u7f13\u5b58\uff1b\u8fd9\u662f\u4f18\u70b9\u4e5f\u662f\u7f3a\u70b9\uff0c\u4f18\u70b9\u662f\u73af\u5883\u5e72\u51c0\u4e0d\u4f1a\u6709\u5e72\u6270\u56e0\u7d20\uff0c\u7f3a\u70b9\u4e5f\u5f88\u660e\u663e\uff0c\u6ca1\u6709\u7f13\u5b58\uff0c\u6240\u6709\u7684\u4f9d\u8d56\u5305\u90fd\u8981\u91cd\u65b0\u4e0b\u8f7d\uff0c\u8981\u662f\u9047\u4e0a\u7f51\u7edc\u73af\u5883\u4e0d\u597d\uff0c\u6784\u5efa\u90fd\u9700\u8981\u597d\u51e0\u4e2a\u5c0f\u65f6\u3002 \u4f46\u662fDooD\u6bd4DinD\u6709\u4e2a\u4f18\u52bf\uff0c\u5c31\u662f\u53ef\u4ee5\u6302\u8f7d\u5bbf\u4e3b\u673a\u7684\u76ee\u5f55\u8fdb\u884c\u5171\u4eab\uff0c\u7279\u522b\u9002\u5408\u9700\u8981\u4e0b\u8f7d\u5305\u7684\u7f13\u5b58\u76ee\u5f55\u3002 \u4e8c\u3001Gitlab Runner\u4e2d\u8bbe\u7f6e\u76ee\u5f55\u5171\u4eab \u6211\u4eec\u4ee5DooD\u4e3a\u4f8b\uff0c\u8981\u5b9e\u73b0\u5728Runner\u5bb9\u5668\u4e2d\u6302\u8f7d\u955c\u50cf\uff0c\u9700\u8981\u5728gitlab-runner\u7684\u914d\u7f6e\u4e2d\u8fdb\u884c\u8bbe\u7f6e\u3002 \u914d\u7f6e\u6587\u4ef6 \/etc\/gitlab-runner\/config.toml \u5176\u4e2d\u7684volume\u5b57\u6bb5\u8bbe\u7f6e\u6210\u5982\u4e0b\uff1a volumes = [“\/var\/run\/docker.sock:\/var\/run\/docker.sock”, “\/cache”, “\/data\/cache\/go\/pkg\/mod\/:\/go\/pkg\/mod\/”] \u7136\u540e\u9700\u8981\u91cd\u542fgitlab-runner systemctl restart gitlab-runner \u4e09\u3001\u6548\u679c \u6211\u4eec\u4ece\u5bbf\u4e3b\u673a\u76ee\u5f55\u4e2d\u53ef\u4ee5\u770b\u5230\u5df2\u7ecf\u7f13\u5b58\u7684\u5305\uff0c\u6784\u5efa\u8fc7\u7a0b\u786e\u5b9e\u8282\u7701\u4e86\u4e0d\u5c11\u3002 \u56db\u3001\u5404\u79cd\u8bed\u8a00\u7f13\u5b58\u76ee\u5f55 golang:1.18 \u5b98\u65b9\u955c\u50cf\u4e2dGOPATH=”\/go”\uff0c\u4ed6\u7684\u5305\u7f13\u5b58\u76ee\u5f55\u662f\uff1a$GOPATH\/pkg\/mod \u3002 node:18 \u5b98\u65b9\u955c\u50cf\u4e2d\uff0cnpm\u7f13\u5b58\u76ee\u5f55\u662f cache = “\/root\/.npm” \u3002 \u8f6c\u8f7d\u8bf7\u6ce8\u660e\uff1aIPCPU-\u7f51\u7edc\u4e4b\u8def » \u4f7f\u7528gitlab CICD\u6784\u5efaDocker\u955c\u50cf\u4e2d\u7684go\u8bed\u8a00\u7f13\u5b58<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[232],"_links":{"self":[{"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/posts\/1926"}],"collection":[{"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/comments?post=1926"}],"version-history":[{"count":1,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/posts\/1926\/revisions"}],"predecessor-version":[{"id":1927,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/posts\/1926\/revisions\/1927"}],"wp:attachment":[{"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/media?parent=1926"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/categories?post=1926"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/c.ipcpu.com\/wp-json\/wp\/v2\/tags?post=1926"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}