1 line
14 KiB
JavaScript
1 line
14 KiB
JavaScript
"use strict";(self.webpackChunkupage_docs=self.webpackChunkupage_docs||[]).push([[851],{4517:(e,d,n)=>{n.r(d),n.d(d,{assets:()=>i,contentTitle:()=>l,default:()=>x,frontMatter:()=>o,metadata:()=>c,toc:()=>t});const c=JSON.parse('{"id":"deployment/docker-compose","title":"Docker Compose \u90e8\u7f72","description":"\u672c\u6587\u6863\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528 Docker Compose \u90e8\u7f72 UPage\uff0c\u8fd9\u662f\u4e00\u79cd\u66f4\u4fbf\u6377\u7684\u65b9\u5f0f\u6765\u7ba1\u7406 UPage \u7684\u90e8\u7f72\u3002","source":"@site/content/deployment/docker-compose.md","sourceDirName":"deployment","slug":"/deployment/docker-compose","permalink":"/upage/deployment/docker-compose","draft":false,"unlisted":false,"editUrl":"https://github.com/halo-dev/upage/edit/main/docs/content/content/deployment/docker-compose.md","tags":[],"version":"current","frontMatter":{"id":"docker-compose","title":"Docker Compose \u90e8\u7f72"},"sidebar":"tutorialSidebar","previous":{"title":"Docker \u90e8\u7f72","permalink":"/upage/deployment/docker"},"next":{"title":"\u6e90\u7801\u90e8\u7f72","permalink":"/upage/deployment/source"}}');var s=n(6106),r=n(8784);const o={id:"docker-compose",title:"Docker Compose \u90e8\u7f72"},l="Docker Compose \u90e8\u7f72",i={},t=[{value:"\u524d\u7f6e\u6761\u4ef6",id:"\u524d\u7f6e\u6761\u4ef6",level:2},{value:"\u5b89\u88c5 Docker \u548c Docker Compose",id:"\u5b89\u88c5-docker-\u548c-docker-compose",level:3},{value:"\u4f7f\u7528 Docker Compose \u90e8\u7f72",id:"\u4f7f\u7528-docker-compose-\u90e8\u7f72",level:2},{value:"\u51c6\u5907\u76ee\u5f55",id:"\u51c6\u5907\u76ee\u5f55",level:3},{value:"\u521b\u5efa\u914d\u7f6e\u6587\u4ef6",id:"\u521b\u5efa\u914d\u7f6e\u6587\u4ef6",level:3},{value:"\u542f\u52a8\u670d\u52a1",id:"\u542f\u52a8\u670d\u52a1",level:3},{value:"\u670d\u52a1\u7ba1\u7406",id:"\u670d\u52a1\u7ba1\u7406",level:3},{value:"\u73af\u5883\u53d8\u91cf\u914d\u7f6e",id:"\u73af\u5883\u53d8\u91cf\u914d\u7f6e",level:2},{value:"\u57fa\u7840\u914d\u7f6e",id:"\u57fa\u7840\u914d\u7f6e",level:3},{value:"\u6a21\u578b\u63d0\u4f9b\u5546\u914d\u7f6e",id:"\u6a21\u578b\u63d0\u4f9b\u5546\u914d\u7f6e",level:3},{value:"\u5927\u6a21\u578b\u914d\u7f6e",id:"\u5927\u6a21\u578b\u914d\u7f6e",level:3},{value:"\u5347\u7ea7 UPage",id:"\u5347\u7ea7-upage",level:2},{value:"\u4e0b\u4e00\u6b65",id:"\u4e0b\u4e00\u6b65",level:2}];function h(e){const d={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(d.header,{children:(0,s.jsx)(d.h1,{id:"docker-compose-\u90e8\u7f72",children:"Docker Compose \u90e8\u7f72"})}),"\n",(0,s.jsx)(d.p,{children:"\u672c\u6587\u6863\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528 Docker Compose \u90e8\u7f72 UPage\uff0c\u8fd9\u662f\u4e00\u79cd\u66f4\u4fbf\u6377\u7684\u65b9\u5f0f\u6765\u7ba1\u7406 UPage \u7684\u90e8\u7f72\u3002"}),"\n",(0,s.jsx)(d.h2,{id:"\u524d\u7f6e\u6761\u4ef6",children:"\u524d\u7f6e\u6761\u4ef6"}),"\n",(0,s.jsx)(d.p,{children:"\u5728\u5f00\u59cb\u4e4b\u524d\uff0c\u8bf7\u786e\u4fdd\u60a8\u7684\u7cfb\u7edf\u6ee1\u8db3\u4ee5\u4e0b\u8981\u6c42\uff1a"}),"\n",(0,s.jsxs)(d.ul,{children:["\n",(0,s.jsx)(d.li,{children:"Docker \u5df2\u5b89\u88c5\uff08\u63a8\u8350 Docker 20.10.0 \u6216\u66f4\u9ad8\u7248\u672c\uff09"}),"\n",(0,s.jsx)(d.li,{children:"Docker Compose \u5df2\u5b89\u88c5\uff08\u63a8\u8350 Docker Compose 1.29.0 \u6216\u66f4\u9ad8\u7248\u672c\uff09"}),"\n",(0,s.jsx)(d.li,{children:"\u81f3\u5c11 2GB \u53ef\u7528\u5185\u5b58"}),"\n",(0,s.jsx)(d.li,{children:"\u81f3\u5c11 2GB \u53ef\u7528\u78c1\u76d8\u7a7a\u95f4"}),"\n",(0,s.jsx)(d.li,{children:"\u4e92\u8054\u7f51\u8fde\u63a5\uff08\u7528\u4e8e\u62c9\u53d6 Docker \u955c\u50cf\u548c\u8bbf\u95ee\u5927\u6a21\u578b API\uff09"}),"\n"]}),"\n",(0,s.jsx)(d.h3,{id:"\u5b89\u88c5-docker-\u548c-docker-compose",children:"\u5b89\u88c5 Docker \u548c Docker Compose"}),"\n",(0,s.jsxs)(d.p,{children:["\u5982\u679c\u60a8\u7684\u7cfb\u7edf\u672a\u5b89\u88c5 Docker\uff0c\u8bf7\u53c2\u8003",(0,s.jsx)(d.a,{href:"https://docs.docker.com/engine/install/",children:"Docker \u5b98\u65b9\u6587\u6863"}),"\u8fdb\u884c\u5b89\u88c5\u3002\n\u5982\u679c\u60a8\u7684\u7cfb\u7edf\u672a\u5b89\u88c5 Docker Compose\uff0c\u8bf7\u53c2\u8003",(0,s.jsx)(d.a,{href:"https://docs.docker.com/compose/install/",children:"Docker Compose \u5b98\u65b9\u6587\u6863"}),"\u8fdb\u884c\u5b89\u88c5\u3002"]}),"\n",(0,s.jsx)(d.h2,{id:"\u4f7f\u7528-docker-compose-\u90e8\u7f72",children:"\u4f7f\u7528 Docker Compose \u90e8\u7f72"}),"\n",(0,s.jsx)(d.h3,{id:"\u51c6\u5907\u76ee\u5f55",children:"\u51c6\u5907\u76ee\u5f55"}),"\n",(0,s.jsxs)(d.p,{children:["\u521b\u5efa\u5fc5\u8981\u7684\u76ee\u5f55\u7528\u4e8e\u6301\u4e45\u5316\u6570\u636e\uff0c\u4f8b\u5982 ",(0,s.jsx)(d.code,{children:"~/upage"}),"\uff1a"]}),"\n",(0,s.jsx)(d.pre,{children:(0,s.jsx)(d.code,{className:"language-bash",children:"mkdir -p ~/upage/data\nmkdir -p ~/upage/logs\nmkdir -p ~/upage/storage\ncd ~/upage\n"})}),"\n",(0,s.jsx)(d.admonition,{type:"tip",children:(0,s.jsx)(d.p,{children:"UPage \u6240\u6709\u6570\u636e\u4e0e\u65e5\u5fd7\u5747\u5b58\u50a8\u5728\u6b64\u76ee\u5f55\u4e2d\uff0c\u8bf7\u59a5\u5584\u4fdd\u7ba1\u3002"})}),"\n",(0,s.jsx)(d.h3,{id:"\u521b\u5efa\u914d\u7f6e\u6587\u4ef6",children:"\u521b\u5efa\u914d\u7f6e\u6587\u4ef6"}),"\n",(0,s.jsxs)(d.p,{children:["\u521b\u5efa ",(0,s.jsx)(d.code,{children:"docker-compose.yml"})," \u6587\u4ef6\uff1a"]}),"\n",(0,s.jsx)(d.pre,{children:(0,s.jsx)(d.code,{className:"language-yaml",children:'version: "3.9"\nservices:\n upage:\n image: upage-ai:production\n restart: unless-stopped\n ports:\n - "${PORT:-3000}:3000"\n environment:\n - LLM_PROVIDER=${LLM_PROVIDER}\n - PROVIDER_BASE_URL=${PROVIDER_BASE_URL}\n - PROVIDER_API_KEY=${PROVIDER_API_KEY}\n - LLM_DEFAULT_MODEL=${LLM_DEFAULT_MODEL}\n - LLM_MINOR_MODEL=${LLM_MINOR_MODEL}\n volumes:\n - ./data:/app/data\n - ./logs:/app/logs\n - ./storage:/app/storage\n\nvolumes:\n upage-db:\n'})}),"\n",(0,s.jsx)(d.h3,{id:"\u542f\u52a8\u670d\u52a1",children:"\u542f\u52a8\u670d\u52a1"}),"\n",(0,s.jsxs)(d.p,{children:["\u5728 ",(0,s.jsx)(d.code,{children:"docker-compose.yml"})," \u6587\u4ef6\u6240\u5728\u76ee\u5f55\u6267\u884c\uff1a"]}),"\n",(0,s.jsx)(d.pre,{children:(0,s.jsx)(d.code,{className:"language-bash",children:"docker-compose up -d\n"})}),"\n",(0,s.jsx)(d.h3,{id:"\u670d\u52a1\u7ba1\u7406",children:"\u670d\u52a1\u7ba1\u7406"}),"\n",(0,s.jsx)(d.p,{children:"\u4f7f\u7528 Docker Compose \u7ba1\u7406\u670d\u52a1\u7684\u5e38\u7528\u547d\u4ee4\uff1a"}),"\n",(0,s.jsx)(d.pre,{children:(0,s.jsx)(d.code,{className:"language-bash",children:"# \u542f\u52a8\u670d\u52a1\ndocker-compose up -d\n\n# \u505c\u6b62\u670d\u52a1\ndocker-compose down\n\n# \u91cd\u542f\u670d\u52a1\ndocker-compose restart\n\n# \u67e5\u770b\u670d\u52a1\u65e5\u5fd7\ndocker-compose logs\n\n# \u67e5\u770b\u670d\u52a1\u72b6\u6001\ndocker-compose ps\n"})}),"\n",(0,s.jsx)(d.h2,{id:"\u73af\u5883\u53d8\u91cf\u914d\u7f6e",children:"\u73af\u5883\u53d8\u91cf\u914d\u7f6e"}),"\n",(0,s.jsx)(d.p,{children:"UPage \u652f\u6301\u901a\u8fc7\u73af\u5883\u53d8\u91cf\u8fdb\u884c\u914d\u7f6e\u3002\u4ee5\u4e0b\u662f\u4e00\u4e9b\u6bd4\u8f83\u91cd\u8981\u7684\u73af\u5883\u53d8\u91cf\uff1a"}),"\n",(0,s.jsx)(d.admonition,{type:"tip",children:(0,s.jsxs)(d.p,{children:["\u5b8c\u6574\u7684\u914d\u7f6e\u8bf7\u53c2\u8003",(0,s.jsx)(d.a,{href:"../configuration",children:"\u914d\u7f6e\u53c2\u8003"}),"\u3002"]})}),"\n",(0,s.jsx)(d.h3,{id:"\u57fa\u7840\u914d\u7f6e",children:"\u57fa\u7840\u914d\u7f6e"}),"\n",(0,s.jsxs)(d.table,{children:[(0,s.jsx)(d.thead,{children:(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,s.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,s.jsx)(d.th,{children:"\u9ed8\u8ba4\u503c"})]})}),(0,s.jsxs)(d.tbody,{children:[(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"PORT"})}),(0,s.jsx)(d.td,{children:"\u670d\u52a1\u76d1\u542c\u7aef\u53e3"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"3000"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"NODE_ENV"})}),(0,s.jsx)(d.td,{children:"Node.js \u73af\u5883"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"production"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"OPERATING_ENV"})}),(0,s.jsx)(d.td,{children:"\u8fd0\u884c\u73af\u5883"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"production"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"LOG_LEVEL"})}),(0,s.jsx)(d.td,{children:"\u65e5\u5fd7\u7ea7\u522b"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"debug"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"USAGE_LOG_FILE"})}),(0,s.jsx)(d.td,{children:"\u662f\u5426\u5f00\u542f\u6587\u4ef6\u65e5\u5fd7"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"true"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"MAX_UPLOAD_SIZE_MB"})}),(0,s.jsx)(d.td,{children:"\u9644\u4ef6\u4e0a\u4f20\u7684\u6700\u5927\u5927\u5c0f (MB)"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"5"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"STORAGE_DIR"})}),(0,s.jsx)(d.td,{children:"\u8d44\u6e90\u6587\u4ef6\u5b58\u50a8\u4f4d\u7f6e"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"/app/storage"})})]})]})]}),"\n",(0,s.jsx)(d.h3,{id:"\u6a21\u578b\u63d0\u4f9b\u5546\u914d\u7f6e",children:"\u6a21\u578b\u63d0\u4f9b\u5546\u914d\u7f6e"}),"\n",(0,s.jsx)(d.p,{children:"\u6839\u636e\u60a8\u9009\u62e9\u7684 AI \u63d0\u4f9b\u5546\uff0c\u60a8\u8fd8\u9700\u8981\u914d\u7f6e\u76f8\u5e94\u7684 API \u5bc6\u94a5\u548c\u57fa\u7840 URL\uff0c\u4f8b\u5982\uff1a"}),"\n",(0,s.jsxs)(d.table,{children:[(0,s.jsx)(d.thead,{children:(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,s.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,s.jsx)(d.th,{children:"\u5fc5\u586b"}),(0,s.jsx)(d.th,{children:"\u793a\u4f8b"})]})}),(0,s.jsxs)(d.tbody,{children:[(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"LLM_PROVIDER"})}),(0,s.jsx)(d.td,{children:"\u9ed8\u8ba4 LLM \u63d0\u4f9b\u5546"}),(0,s.jsx)(d.td,{children:"\u662f"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"OpenAILike"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"PROVIDER_BASE_URL"})}),(0,s.jsx)(d.td,{children:"OpenAI \u517c\u5bb9 API \u57fa\u7840 URL"}),(0,s.jsx)(d.td,{children:"\u662f"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"https://your-api-base-url"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"PROVIDER_API_KEY"})}),(0,s.jsx)(d.td,{children:"OpenAI \u517c\u5bb9 API \u5bc6\u94a5"}),(0,s.jsx)(d.td,{children:"\u662f"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"your-openai-like-api-key"})})]})]})]}),"\n",(0,s.jsx)(d.h3,{id:"\u5927\u6a21\u578b\u914d\u7f6e",children:"\u5927\u6a21\u578b\u914d\u7f6e"}),"\n",(0,s.jsxs)(d.table,{children:[(0,s.jsx)(d.thead,{children:(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.th,{children:"\u73af\u5883\u53d8\u91cf"}),(0,s.jsx)(d.th,{children:"\u63cf\u8ff0"}),(0,s.jsx)(d.th,{children:"\u5fc5\u586b"}),(0,s.jsx)(d.th,{children:"\u793a\u4f8b"})]})}),(0,s.jsxs)(d.tbody,{children:[(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"LLM_DEFAULT_MODEL"})}),(0,s.jsx)(d.td,{children:"\u751f\u6210\u9875\u9762\u6240\u4f7f\u7528\u7684\u4e3b\u8981\u6a21\u578b"}),(0,s.jsx)(d.td,{children:"\u662f"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"gpt-4-turbo"})})]}),(0,s.jsxs)(d.tr,{children:[(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"LLM_MINOR_MODEL"})}),(0,s.jsx)(d.td,{children:"\u8f85\u52a9\u9875\u9762\u751f\u6210\u6240\u4f7f\u7528\u7684\u6b21\u7ea7\u6a21\u578b"}),(0,s.jsx)(d.td,{children:"\u662f"}),(0,s.jsx)(d.td,{children:(0,s.jsx)(d.code,{children:"gpt-3.5-turbo"})})]})]})]}),"\n",(0,s.jsx)(d.h2,{id:"\u5347\u7ea7-upage",children:"\u5347\u7ea7 UPage"}),"\n",(0,s.jsx)(d.p,{children:"\u5f53\u6709\u65b0\u7248\u672c\u53d1\u5e03\u65f6\uff0c\u60a8\u53ef\u4ee5\u6309\u7167\u4ee5\u4e0b\u6b65\u9aa4\u5347\u7ea7 UPage\uff1a"}),"\n",(0,s.jsx)(d.pre,{children:(0,s.jsx)(d.code,{className:"language-bash",children:"docker-compose pull\ndocker-compose down\ndocker-compose up -d\n"})}),"\n",(0,s.jsx)(d.h2,{id:"\u4e0b\u4e00\u6b65",children:"\u4e0b\u4e00\u6b65"}),"\n",(0,s.jsxs)(d.ul,{children:["\n",(0,s.jsxs)(d.li,{children:["\u9605\u8bfb",(0,s.jsx)(d.a,{href:"../user-guide/basics",children:"\u7528\u6237\u6307\u5357"}),"\u5b66\u4e60\u5982\u4f55\u4f7f\u7528 UPage \u521b\u5efa\u7f51\u9875"]}),"\n",(0,s.jsxs)(d.li,{children:["\u63a2\u7d22",(0,s.jsx)(d.a,{href:"../configuration",children:"\u914d\u7f6e\u53c2\u8003"}),"\u4e86\u89e3\u6240\u6709\u53ef\u7528\u7684\u914d\u7f6e\u9009\u9879"]}),"\n",(0,s.jsxs)(d.li,{children:["\u63a2\u7d22",(0,s.jsx)(d.a,{href:"./logto",children:"Logto \u8ba4\u8bc1\u96c6\u6210"}),"\u4e86\u89e3\u5982\u4f55\u96c6\u6210 Logto \u5b9e\u73b0\u7528\u6237\u8ba4\u8bc1"]}),"\n"]})]})}function x(e={}){const{wrapper:d}={...(0,r.R)(),...e.components};return d?(0,s.jsx)(d,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},8784:(e,d,n)=>{n.d(d,{R:()=>o,x:()=>l});var c=n(7378);const s={},r=c.createContext(s);function o(e){const d=c.useContext(r);return c.useMemo(function(){return"function"==typeof e?e(d):{...d,...e}},[d,e])}function l(e){let d;return d=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),c.createElement(r.Provider,{value:d},e.children)}}}]); |