{
    "componentChunkName": "component---src-templates-blog-post-jsx",
    "path": "/posts/2020/03/27/gitea-drone-ci-cd/",
    "result": {"data":{"site":{"siteMetadata":{"siteUrl":"https://codeand.fun"}},"mdx":{"body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Gitea + Drone CI/CD\",\n  \"date\": \"2020-03-27T20:38:51.000Z\",\n  \"tags\": [\"Gitea\", \"Drone\", \"CI/CD\"],\n  \"categories\": [\"Blog\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"\\u6700\\u8FD1\\u60F3\\u5B9E\\u8DF5\\u4E00\\u4E0B DevOps\\uFF0C\\u6240\\u4EE5\\u51C6\\u5907\\u642D\\u5EFA\\u4E00\\u5957\\u4EE3\\u7801\\u6258\\u7BA1\\u548CCI/CD \\u7CFB\\u7EDF\\u3002\"), mdx(\"h2\", null, \"\\u6280\\u672F\\u9009\\u578B\"), mdx(\"h3\", null, \"\\u4EE3\\u7801\\u6258\\u7BA1\"), mdx(\"p\", null, \"\\u4EE3\\u7801\\u6258\\u7BA1\\u7CFB\\u7EDF\\u7684\\u9009\\u62E9\\u5176\\u5B9E\\u5E76\\u4E0D\\u591A\\uFF1A\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Gitea\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Gogs\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"GitLab\")), mdx(\"p\", null, \"\\u7531\\u4E8E \", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"Gitlab\"), \" \\u8D44\\u6E90\\u5360\\u7528\\u8FC7\\u5927\\uFF0C\\u6240\\u4EE5\\u53EF\\u4EE5\\u76F4\\u63A5\\u53BB\\u9664\\uFF08\\u6BD5\\u7ADF\\u8FD9\\u4E2A\\u7CFB\\u7EDF\\u53EA\\u6709\\u6211\\u4E00\\u4E2A\\u4EBA\\u5728\\u7528\\uFF0C\\u800C\\u4E14\\u53EA\\u6709\\u4E00\\u53F01\\u68382G\\u7684\\u670D\\u52A1\\u5668\\uFF09\\u3002\"), mdx(\"p\", null, mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"Gitea\"), \"\\u662F\\u8131\\u80CE\\u4E8E\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"Gogs\"), \"\\u7684\\uFF0C\\u5728\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"Gogs\"), \"\\u4E0A\\u505A\\u4E86\\u8F83\\u591A\\u7684\\u6269\\u5C55\\uFF0C\\u800C\\u4E14\\u8FED\\u4EE3\\u7684\\u4E5F\\u6BD5\\u7ADF\\u5FEB\\u3002\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"Gitea\"), \"\\u5BF9\\u73B0\\u6709\\u7684\\u4EE3\\u7801\\u6258\\u7BA1\\u505A\\u4E86\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://docs.gitea.io/zh-cn/comparison/\"\n  }, \"\\u6A2A\\u5411\\u5BF9\\u6BD4\"), \",\\n\\u6211\\u4EEC\\u53EF\\u4EE5\\u770B\\u51FA\\u6765\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"Gitea\"), \"\\u51E0\\u4E4E\\u662F\\u6700\\u4F18\\u9009\\u62E9\\u3002\"), mdx(\"p\", null, mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"Gitea\"), \"\\u6709\\u4E00\\u4E2A\\u6BD4\\u8F83\\u663E\\u8457\\u7684\\u7F3A\\u70B9\\uFF0C\\u5B83\\u6CA1\\u6709\\u50CF\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"Gitlab\"), \"\\u4E00\\u6837\\u5185\\u7F6E\\u4E86\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"CI/CD\"), \"\\uFF0C\\u6240\\u4EE5\\u6211\\u4EEC\\u5FC5\\u987B\\u642D\\u53E6\\u5916\\u4E00\\u5957\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"CI/CD\"), \"\\u7CFB\\u7EDF\\u3002\"), mdx(\"h3\", null, \"CI/CD\"), mdx(\"p\", null, \"\\u5BF9\\u73B0\\u6709\\u7684 CI/CD \\u8FDB\\u884C\\u4E86\\u4E00\\u4E0B\\u8C03\\u7814:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Jenkins\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u4F18\\u70B9\\uFF1A\\u6700\\u4E3A\\u6D41\\u884C\\uFF0C\\u51FA\\u73B0\\u5751\\u7684\\u5BB9\\u6613\\u627E\\u5230\\u89E3\\u51B3\\u65B9\\u6848\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u7F3A\\u70B9\\uFF1A\\u7528 Java \\u7F16\\u5199\\uFF0C\\u8FC7\\u4E8E\\u7B28\\u91CD\"))), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"GitLab CI\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u4F18\\u70B9\\uFF1A\\u636E\\u8BF4\\u5F88\\u597D\\u7528\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u7F3A\\u70B9\\uFF1A\\u7B28\\u91CD\"))), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Drone\", mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u4F18\\u70B9\\uFF1A\\u8F7B\\u91CF\\u7EA7\\uFF0C\\u652F\\u6301\", mdx(\"code\", {\n    parentName: \"li\",\n    \"className\": \"language-text\"\n  }, \"Gitea\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u7F3A\\u70B9\\uFF1A\\u751F\\u6001\\u4E0D\\u591F\\u4E30\\u5BCC\\uFF0C\\u6587\\u6863\\u5DEE\")))), mdx(\"p\", null, \"\\u5728\\u8FD9\\u91CC\\u6211\\u4EEC\\u9009\\u62E9\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"Drone\"), \"\\u4F5C\\u4E3A\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"CI/CD\"), \"\\uFF0C\\u4E3B\\u8981\\u539F\\u56E0\\u5F53\\u7136\\u662F\\u56E0\\u4E3A\\u53EA\\u6709\\u5B83\\u8F7B\\u91CF\\u7EA7\\u554A\\u3002\"), mdx(\"h2\", null, \"Gitea\"), mdx(\"p\", null, \"\\u5728\\u5B89\\u88C5\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"Gitea\"), \"\\u548C\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"Drone\"), \"\\u65F6\\uFF0C\\u6211\\u4EEC\\u90FD\\u9009\\u62E9\\u4F7F\\u7528\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"docker-compose\"), \"\\u6765\\u7BA1\\u7406\\uFF0C\\u56E0\\u6B64\\u9700\\u8981\\u5148\\u5B89\\u88C5\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"docker\"), \"\\u548C\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"docker-compose\"), \"\\u3002\"), mdx(\"p\", null, \"\\u521B\\u5EFA\\u4E00\\u4E2A\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"gitea\"), \"\\u6587\\u4EF6\\u5939\\uFF0C\\u5E76\\u5728\\u8BE5\\u6587\\u4EF6\\u5939\\u4E0B\\u521B\\u5EFA\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"docker-compose.yml\"), \"\\u6587\\u4EF6\\uFF1A\"), mdx(\"div\", {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"yml\"\n  }, mdx(\"pre\", {\n    parentName: \"div\",\n    \"className\": \"language-yml\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-yml\"\n  }, mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"version\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"\\\"2\\\"\"), \"\\n\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"networks\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"gitea\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"external\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token boolean important\"\n  }, \"false\"), \"\\n\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"services\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"server\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"image\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" gitea/gitea\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token number\"\n  }, \"1.11\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"environment\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" USER_UID=1000\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" USER_GID=1000\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" RUN_MODE=prod\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" SSH_PORT= 3022 \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"#SSH\\u7AEF\\u53E3\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" SSH_DOMAIN= \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"#IP\\u5730\\u5740\\u6216URL\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" DISABLE_REGISTRATION=False \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"#\\u53D6\\u6D88\\u6CE8\\u518C\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"restart\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" always\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"networks\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" gitea\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"volumes\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" ./gitea\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"/data\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" /etc/timezone\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"/etc/timezone\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"ro\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" /etc/localtime\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"/etc/localtime\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"ro\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"ports\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"\\\"3000:3000\\\"\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"\\\"3022:3022\\\"\")))), mdx(\"p\", null, \"\\u8FD9\\u91CC\\u9762\\u9700\\u8981\\u6CE8\\u610F\\u7684\\u662F\\uFF0C\\u8BBE\\u7F6E\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"SSH_PORT\"), \"\\u548C\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"SSH_DOMAIN\"), \"\\uFF0C\\u8FD9\\u6837 gitea \\u751F\\u6210\\u7684 repo SSH \\u94FE\\u63A5\\u624D\\u662F\\u80FD\\u76F4\\u63A5\\u4F7F\\u7528\\u7684\\u5F62\\u5F0F\\u3002\"), mdx(\"p\", null, \"\\u586B\\u5199\\u5B8C\\u540E\\uFF0C\\u76F4\\u63A5\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"docker-compose up -d\"), \"\\u5F00\\u542F\\u670D\\u52A1\\u5373\\u53EF\\uFF0C\\u7B2C\\u4E00\\u6B21\\u767B\\u9646\\u65F6\\uFF0C\\u4F1A\\u8DF3\\u51FA\\u4E00\\u4E2A\\u5B89\\u88C5\\u9875\\u9762\\uFF0C\\u53EF\\u4EE5\\u8BBE\\u7F6E\\u6240\\u4F7F\\u7528\\u7684\\u6570\\u636E\\u5E93\\u548C\\u7BA1\\u7406\\u5458\\u8D26\\u53F7\\uFF0C\\u540C\\u65F6\\u8981\\u8BB0\\u5F97\\u68C0\\u67E5\\u4E00\\u4E0B SSH \\u7AEF\\u53E3\\u548C\\u57DF\\u540D\\u662F\\u5426\\u6B63\\u786E\\u3002\"), mdx(\"h2\", null, \"Drone\"), mdx(\"p\", null, mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"Drone\"), \"\\u7684\\u5B89\\u88C5\\u6BD4\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"Gitea\"), \"\\u590D\\u6742\\u7684\\u591A\\uFF0C\\u540C\\u65F6\\u9700\\u8981\\u5148\\u5728\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"Gitea\"), \"\\u4E2D\\u521B\\u5EFA\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"OAuth2\"), \"\\u5E94\\u7528\\u7A0B\\u5E8F\\uFF1A\"), mdx(\"p\", null, \"\\u6253\\u5F00\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"Gitea\"), \"\\u7684\\u9875\\u9762 -> \\u4E2A\\u4EBA\\u4FE1\\u606F -> \\u5E94\\u7528 -> \\u7BA1\\u7406 OAuth2 \\u5E94\\u7528\\u7A0B\\u5E8F\"), mdx(\"p\", null, mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"https://imagehosting.wuxiaobai24.fun/blogGitea-Drone-CI-CD-20200327211442-2020-03-27\",\n    \"alt\": \"Gitea-Drone-CI-CD-20200327211442-2020-03-27\"\n  })), mdx(\"p\", null, \"\\u5E94\\u7528\\u540D\\u79F0\\u586B\\u4EC0\\u4E48\\u90FD\\u65E0\\u6240\\u8C13\\uFF0C\\u4F46\\u662F\\u91CD\\u5B9A\\u5411 URL \\u6BD4\\u8F83\\u91CD\\u8981\\uFF0C\\u8981\\u586B \", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"Drone\"), \"\\u670D\\u52A1\\u7684\\u5730\\u5740\\uFF08\\u867D\\u7136\\u73B0\\u5728\\u8FD8\\u6CA1\\u542F\\u52A8\\uFF09\\uFF0C\\u6BD4\\u5982\\u8BF4\\uFF0C\\u4F60\\u7684 Drone \\u7684 \", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"ip\"), \" \\u5730\\u5740\\u4E3A\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"1.2.3.4\"), \"\\uFF0C\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"Drone\"), \"\\u7AEF\\u53E3\\u7684\\u4E3A\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"8000\"), \"\\uFF0C\\n\\u90A3\\u4E48\\u5C31\\u53EF\\u4EE5\\u586B\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"http://1.2.3.4:8000\"), \"\\u3002\"), mdx(\"p\", null, \"\\u521B\\u5EFA\\u540E\\u4F1A\\u5F97\\u5230\\u4E00\\u4E2A\\u5BA2\\u6237\\u7AEFID\\u548C\\u5BA2\\u6237\\u7AEF\\u5BC6\\u94A5\\u3002\\u8FD9\\u65F6\\uFF0C\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"Gitea\"), \"\\u7684\\u8BBE\\u7F6E\\u5C31\\u5DF2\\u7ECF\\u5B8C\\u6210\\u4E86\\u3002\"), mdx(\"p\", null, \"\\u4E3A\\u4E86\\u8BA9\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"Drone Server\"), \"\\u548C\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"Drone Runer\"), \"\\u80FD\\u591F\\u901A\\u8FC7\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"RPC\"), \"\\u8FDE\\u63A5\\uFF0C\\u6211\\u4EEC\\u9700\\u8981\\u751F\\u6210\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"RPC\"), \"\\u5BC6\\u94A5\\uFF0C\\u53EF\\u4EE5\\u5728 shell \\u4E2D\\u4F7F\\u7528\\u8BE5\\u547D\\u4EE4\\u6765\\u751F\\u6210\\u968F\\u673A\\u6570\\uFF0C\\u7528\\u8BE5\\u968F\\u673A\\u6570\\u4F5C\\u4E3A RPC \\u7684\\u5BC6\\u94A5\"), mdx(\"div\", {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"bash\"\n  }, mdx(\"pre\", {\n    parentName: \"div\",\n    \"className\": \"language-bash\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-bash\"\n  }, \"$ openssl rand -hex \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token number\"\n  }, \"16\")))), mdx(\"p\", null, \"\\u4E0A\\u9762\\u7684\\u64CD\\u4F5C\\u4E2D\\u53EF\\u4EE5\\u5F97\\u5230\\uFF1A\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u5BA2\\u6237\\u7AEF ID\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\\u5BA2\\u6237\\u7AEF\\u5BC6\\u94A5\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"RPC \\u5BC6\\u94A5\")), mdx(\"p\", null, \"\\u521B\\u5EFA\\u4E00\\u4E2A\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"drone\"), \"\\u6587\\u4EF6\\u5939\\u5E76\\u5728\\u5176\\u4E2D\\u521B\\u5EFA\\u4E00\\u4E2A\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"docker-compose.yml\"), \"\\u6587\\u4EF6\\uFF1A\"), mdx(\"div\", {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"yml\"\n  }, mdx(\"pre\", {\n    parentName: \"div\",\n    \"className\": \"language-yml\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-yml\"\n  }, mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"version\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token string\"\n  }, \"\\\"3.5\\\"\"), \"\\n\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"networks\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"drone\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"name\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" drone_network\\n\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"services\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" \\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"drone-server\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"image\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" drone/drone\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token number\"\n  }, \"1\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"ports\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" 8000\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token number\"\n  }, \"80\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" 443\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token number\"\n  }, \"443\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"networks\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" drone\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"volumes\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" ./drone\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \"data\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"/var/lib/drone\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" /var/run/docker.sock\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"/var/run/docker.sock\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"restart\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" always\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"environment\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" \\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" DRONE_GITEA_CLIENT_ID= \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"# Gitea \\u5BA2\\u6237\\u7AEFID\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" DRONE_GITEA_CLIENT_SECRET= \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"# Gitea \\u5BA2\\u6237\\u7AEF\\u5BC6\\u94A5\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" DRONE_GITEA_SERVER= \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"# Gitea URL \\u5730\\u5740\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" DRONE_GITEA=true\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" DRONE_RPC_SECRET= \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"# Drone RPC \\u5BC6\\u94A5\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" DRONE_SERVER_HOST= \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"# Drone URL,\\u53EF\\u4EE5\\u586B\\u57DF\\u540D\\u6216 ip:port\"), \"\\n\\t  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" DRONE_SERVER_PROTO=http \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"# Drone \\u6240\\u4F7F\\u7528\\u7684\\u534F\\u8BAE http \\u6216\\u8005 https\"), \"\\n\\t  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"# \\u7531\\u4E8E\\u6211\\u7684 Gitea \\u7684\\u8BBE\\u7F6E\\u662F\\u53EA\\u5141\\u8BB8\\u767B\\u9646\\u7528\\u6237\\u8BBF\\u95EE\\u4EE3\\u7801\\u7684\\uFF0C\\u6240\\u4EE5 Git \\u9700\\u8981 Auth\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" DRONE_GIT_ALWAYS_AUTH=true\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" DRONE_GIT_USERNAME= \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"# Gitea \\u7528\\u6237\\u540D\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" DRONE_GIT_PASSWORD= \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"# Gitea \\u5BC6\\u7801\"), \"\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"drone-agent\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"image\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" drone/drone\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \"runner\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \"docker\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token number\"\n  }, \"1\"), \"\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"restart\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" always\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"depends_on\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" \\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" drone\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \"server\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"networks\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" drone\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"volumes\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" \\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" /var/run/docker.sock\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"/var/run/docker.sock\\n    \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"environment\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" \\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" DRONE_RPC_SECRET= \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"# \\u8FD9\\u91CC\\u7684\\u5BC6\\u94A5\\u8981\\u548C Server \\u4E00\\u6837\"), \"\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" DRONE_RPC_PROTO=http\\n      \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" DRONE_RPC_HOST= \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token comment\"\n  }, \"# \\u548C\\u4E0A\\u9762\\u7684 DRONE_SERVER_HOST\")))), mdx(\"p\", null, \"\\u548C\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"Gitea\"), \"\\u540C\\u7406\\uFF0C\\u6211\\u4EEC\\u53EA\\u9700\\u8981\\u5728\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \"docker-compose up -d\"), \"\\u5373\\u53EF\\u3002\"), mdx(\"p\", null, \"\\u7B2C\\u4E00\\u6B21\\u6253\\u5F00 Drone \\u4F1A\\u5148\\u8DF3\\u5230 Gitea \\u8FDB\\u884C\\u9A8C\\u8BC1\\u3002\\u7531\\u4E8E\\u6253\\u5F00 Drone \\u4F1A\\u9A8C\\u8BC1 Gitea \\u662F\\u5426\\u767B\\u9646\\uFF0C\\u6240\\u4EE5\\u4E0D\\u7528\\u62C5\\u5FC3 Drone \\u7684\\u9875\\u9762\\u76F4\\u63A5\\u66B4\\u9732\\u5230\\u516C\\u7F51\\u3002\"), mdx(\"h3\", null, \"\\u6D4B\\u8BD5 Drone \\u548C Gitea\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u5728 Gitea \\u4E2D\\u521B\\u5EFA\\u4E00\\u4E2A repo\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u5728 Drone \\u6FC0\\u6D3B\\u8BE5 repo\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u521B\\u5EFA\\u516C\\u94A5\\u5E76\\u52A0\\u5165\\u5230 gitea \\u4E2D\\uFF08\\u8FD9\\u4E00\\u6B65\\u548C Github \\u7C7B\\u4F3C\\uFF09\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u5C06 repo clone \\u5230\\u672C\\u5730\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"\\u521B\\u5EFA\\u4E00\\u4E2A\", mdx(\"code\", {\n    parentName: \"li\",\n    \"className\": \"language-text\"\n  }, \".drone.yml\"), \"\\u6587\\u4EF6\\uFF1A\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"git commit and push\")), mdx(\"p\", null, mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \".drone.yml\"), \"\\u7684\\u6837\\u4F8B\\u5982\\u4E0B\\uFF1A\"), mdx(\"div\", {\n    \"className\": \"gatsby-highlight\",\n    \"data-language\": \"yml\"\n  }, mdx(\"pre\", {\n    parentName: \"div\",\n    \"className\": \"language-yml\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-yml\"\n  }, mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"kind\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" pipeline\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"type\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" docker\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"name\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" default\\n\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"steps\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"\\n\", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"name\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" greeting\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"image\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \" alpine\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token key atrule\"\n  }, \"commands\"), mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \":\"), \"\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" echo hello\\n  \", mdx(\"span\", {\n    parentName: \"code\",\n    \"className\": \"token punctuation\"\n  }, \"-\"), \" echo world\"))), mdx(\"p\", null, \"\\u5173\\u4E8E\", mdx(\"code\", {\n    parentName: \"p\",\n    \"className\": \"language-text\"\n  }, \".drone.yml\"), \"\\u7684\\u4FE1\\u606F\\u53EF\\u4EE5\\u67E5\\u770B\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://docs.drone.io/\"\n  }, \"\\u5B98\\u65B9\\u6587\\u6863\"), \"\\u3002\"), mdx(\"p\", null, \"\\u4E4B\\u540E\\u4F30\\u8BA1\\u4E5F\\u4F1A\\u5199\\u4E00\\u7BC7 blog \\u5BF9 Drone \\u7684\\u4F7F\\u7528\\u8FDB\\u884C\\u4E0B\\u603B\\u7ED3\\u3002\"));\n}\n;\nMDXContent.isMDXComponent = true;","excerpt":"最近想实践一下 DevOps，所以准备搭建一套代码托管和CI/CD 系统。 技术选型 代码托管 代码托管系统的选择其实并不多： Gitea Gogs GitLab 由于  Gitlab…","frontmatter":{"title":"Gitea + Drone CI/CD","tags":["Gitea","Drone","CI/CD"],"date":"2020-03-27T20:38:51.000Z","categories":["Blog"]},"fields":{"slug":"/posts/2020/03/27/gitea-drone-ci-cd/"}}},"pageContext":{"slug":"/posts/2020/03/27/gitea-drone-ci-cd/"}},
    "staticQueryHashes": ["163584858","1656825683","63159454"]}