{"id":203,"date":"2023-11-09T10:13:56","date_gmt":"2023-11-09T02:13:56","guid":{"rendered":"http:\/\/www.x4s.cn\/?p=203"},"modified":"2023-11-10T17:06:13","modified_gmt":"2023-11-10T09:06:13","slug":"%e5%a6%82%e4%bd%95%e4%bd%bf%e7%94%a8-docker-%e9%83%a8%e7%bd%b2-linkwechat-2","status":"publish","type":"post","link":"http:\/\/www.x4s.cn\/?p=203","title":{"rendered":"\u5982\u4f55\u4f7f\u7528 Docker \u90e8\u7f72 LinkWeChat"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"697\" src=\"http:\/\/www.x4s.cn\/wp-content\/uploads\/2023\/11\/image-12-1024x697.png\" alt=\"\" class=\"wp-image-208\" style=\"width:730px;height:auto\" srcset=\"http:\/\/www.x4s.cn\/wp-content\/uploads\/2023\/11\/image-12-1024x697.png 1024w, http:\/\/www.x4s.cn\/wp-content\/uploads\/2023\/11\/image-12-300x204.png 300w, http:\/\/www.x4s.cn\/wp-content\/uploads\/2023\/11\/image-12-768x523.png 768w, http:\/\/www.x4s.cn\/wp-content\/uploads\/2023\/11\/image-12.png 1480w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\" id=\"ucd2fccd4\"><br><strong>\u7279\u522b\u8bf4\u660e\uff1a<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li class=\"has-small-font-size\">\u524d\u7aef\u9879\u76ee\u53ef\u80fd\u4f1a\u56e0\u4e3a Node \u7248\u672c\u6216\u7f51\u7edc\u73af\u5883\u65e0\u6cd5\u6253\u5305\uff0c\u8bf7\u591a\u5c1d\u8bd5\u51e0\u6b21\uff1b<\/li>\n\n\n\n<li class=\"has-small-font-size\">Mysql \u542f\u52a8\u540e\u9700\u8981\u624b\u52a8\u5bfc\u5165 SQL \u6587\u4ef6\uff1b<\/li>\n\n\n\n<li class=\"has-small-font-size\">\u8981\u786e\u8ba4 Redis \u662f\u5426\u542f\u52a8\u6b63\u5e38\uff1a\u5b9e\u6d4b Centos7.9 \u53ef\u4ee5\u6b63\u5e38\u542f\u52a8\uff1b<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"09c48308\">1\u3001\u670d\u52a1\u5668\u4fe1\u606f\uff1a<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>\u7ec4\u4ef6<\/strong><\/td><td><strong>\u7c7b\u578b<\/strong><\/td><\/tr><tr><td>\u64cd\u4f5c\u7cfb\u7edf<\/td><td>CentOS 7.9<\/td><\/tr><tr><td>CPU<\/td><td>4\u6838<\/td><\/tr><tr><td>\u5185\u5b58<\/td><td>16G<\/td><\/tr><tr><td>\u5e26\u5bbd<\/td><td>5M<\/td><\/tr><tr><td>\u786c\u76d8<\/td><td>100G<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"e4119505\">2\u3001\u73af\u5883\u51c6\u5907\uff1a<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>\u8f6f\u4ef6\u540d<\/strong><\/td><td><strong>\u7248\u672c<\/strong><\/td><\/tr><tr><td>JDK<\/td><td>1.8<\/td><\/tr><tr><td>Maven<\/td><td>3.8.8<\/td><\/tr><tr><td>Node<\/td><td>14.18.3<\/td><\/tr><tr><td>Docker<\/td><td>\u6700\u65b0\u7248<\/td><\/tr><tr><td>Docker-Compose<\/td><td>\u6700\u65b0\u7248<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"p3w3O\">3\u3001\u5b89\u88c5\u914d\u7f6e\u6b65\u9aa4<\/h2>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">     a   \u5b89\u88c5git\u548cJDK\uff1b<br>     b   \u5b89\u88c5Maven\uff1b<br>     c   \u5b89\u88c5Node\uff1b<br>     d   \u5b89\u88c5Docker\uff1b<br>     e   \u5b89\u88c5Docker-Compose\uff1b<br>     f   \u514b\u9686\u9879\u76ee\u4ee3\u7801\uff1b<br>     g   \u540e\u7aef\u914d\u7f6e\uff1b<br>     h   \u524d\u7aef\u914d\u7f6e\uff1b<br>     i   \u8f6c\u9879\u76eedocker\u76ee\u5f55\uff0c\u4fee\u6539\u914d\u7f6e\u6587\u4ef6\uff0c\u6267\u884c\u90e8\u7f72\u811a\u672c\uff1b<br>   <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"5145fca4\">4\u3001\u9879\u76ee\u7ed3\u6784<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"cedf47b4\">4.1 \u540e\u7aef\u7ed3\u6784<\/h3>\n\n\n\n<pre id=\"1882f9d3\" class=\"wp-block-code\"><code>\u251c\u2500\u2500 linkwe-api                \/\/ \u7cfb\u7edf\u4e1a\u52a1\u63a5\u53e3\u6a21\u5757\n\u251c\u2500\u2500 linkwe-auth               \/\/ \u89d2\u8272\u6743\u9650\u90e8\u95e8\u7528\u6237\u8ba4\u8bc1\u7b49\u6a21\u5757\n\u251c\u2500\u2500 linkwe-common             \/\/ \u516c\u5171\u7ec4\u4ef6\u6a21\u5757\n\u251c\u2500\u2500 linkwe-fileservice\t      \/\/ \u6587\u4ef6\u670d\u52a1\u6a21\u5757\n\u251c\u2500\u2500 linkwe-framework\t      \/\/ \u6846\u67b6\u914d\u7f6e\n\u251c\u2500\u2500 linkwe-gateway            \/\/ \u7f51\u5173\u670d\u52a1\n\u251c\u2500\u2500 linkwe-scheduler\t      \/\/ \u5b9a\u65f6\u4efb\u52a1\u76f8\u5173\u6a21\u5757\n\u251c\u2500\u2500 linkwe-service            \/\/ \u7cfb\u7edfservice\u5c42\u62bd\u53d6,\u4e0e\u6570\u636e\u5e93\u76f8\u5173\u4ea4\u4e92\n\u251c\u2500\u2500 linkwe-wecome             \/\/ \u4f01\u5fae\u63a5\u53e3\u5b9e\u73b0\n\u251c\u2500\u2500 linkwe-wx-api             \/\/ \u7cfb\u7edf\u4e2d\u8bbe\u8ba1\u5fae\u4fe1\u516c\u4f17\u53f7\u76f8\u5173\u63a5\u53e3\u6a21\u5757<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"e6c3ddb5\">4.2 \u524d\u7aef\u7ed3\u6784<\/h3>\n\n\n\n<pre id=\"5ab17a54\" class=\"wp-block-code\"><code>\u251c\u2500\u2500 vue3-lw-pc\t\t\t\/\/ \u540e\u53f0\u9879\u76ee\n\u251c\u2500\u2500 linkwe-mobile\t\t\/\/ \u79fb\u52a8\u7aef\u9879\u76ee\u5305\u542b\u79fb\u52a8\u5de5\u4f5c\u53f0\u3001\u4efb\u52a1\u5b9d\u3001\u7fa4\u88c2\u53d8\u7b49H5 \u5907\u6ce8\uff1a\u79fb\u52a8\u7aef\u4e0d\u5f00\u6e90\n\u251c\u2500\u2500 linkwe-uniapp\t\t\/\/ uniapp\u77ed\u94fe\u5c0f\u7a0b\u5e8f\u9879\u76ee<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"9b526dda\">5\u3001\u5b89\u88c5\u73af\u5883<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u4045eee8\">\u540e\u7aef\uff1a<a href=\"https:\/\/gitee.com\/LinkWeChat\/link-wechat\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/gitee.com\/LinkWeChat\/link-wechat<\/a><br>\u524d\u7aef\uff1a<a href=\"https:\/\/gitee.com\/LinkWeChat\/link-we-chat-front\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/gitee.com\/LinkWeChat\/link-we-chat-front<\/a><br>\u9879\u76ee Docker \u76ee\u5f55\uff1a<a href=\"https:\/\/gitee.com\/LinkWeChat_admin\/linkwechat-docker\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/gitee.com\/LinkWeChat_admin\/linkwechat-docker<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"4e78ec0e\">5.1 SQL\u6587\u4ef6\uff1a<\/h3>\n\n\n\n<pre id=\"be9ab789\" class=\"wp-block-code\"><code>config.sql\t\t\/\/ nacos\u914d\u7f6e\u6587\u4ef6\nlw-cloud.sql\ntables_xxl_job.sql<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"964b8859\">5.2 \u5b89\u88c5 OpenJDK 1.8<\/h3>\n\n\n\n<pre id=\"41e4d813\" class=\"wp-block-code\"><code>#CentOS7.9\u6ca1\u6709\u9ed8\u8ba4\u5b89\u88c5git\u652f\u6301\uff0c\u540e\u9762\u5b89\u88c5\u6b65\u9aa4\u9700\u7528\u5230git\u547d\u4ee4\n   yum install -y git\n\n#\u5347\u7ea7GLIBC\u5e93\u4e3a\u6700\u65b0\u7248\n  \u67e5\u770b\u7cfb\u7edfGLIBC\u5e93\n     strings \/lib64\/libc.so.6 |grep GLIBC_\n  \u66f4\u65b0\u5230glibc-2.27\u7248\u4ee5\u4e0a\uff0c\u5426\u5219\u5728\u914d\u7f6e\u5b8c\u524d\u7aef\u8fdb\u884c\u6253\u5305\u65f6\u4f1a\u51fa\u9519,\u4e0b\u9762\u66f4\u65b0\u5230\u6700\u65b0\u7684glibc-2.38 \n     wget http:\/\/ftp.gnu.org\/gnu\/glibc\/glibc-2.38.tar.gz\n     tar -xzvf glibc-2.38.tar.gz\n     cd glibc-2.38\n     mkdir build\n     cd build\n     ..\/configure --prefix=.\/\n       #\u6ce8\u610f\uff1a\u5982\u679c\u51fa\u73b0\u5982\u4e0b\u9519\u8bef\u4fe1\u606f\uff1a\n           checking for gcc... no \n           checking for cc... no \n           checking for cc... no \n           checking for cl... no \n           configure: error: no acceptable C compiler found in $PATH \n\n           See `config.log' for more details. \n\n           \n\u89e3\u51b3\u65b9\u6cd5\uff1a\n  \n           \u5b89\u88c5GCC\u5957\u4ef6\uff1ayum install gcc \n           \u5b89\u88c5C++\u7f16\u8bd1\u5668\uff1ayum install gcc gcc-c++\n           \u4e4b\u540e\u518d\u7f16\u8bd1\u5c31\u80fd\u6210\u529f\u4e86\n\n     make &amp;&amp; make install\n\n# \u5378\u8f7d\u81ea\u5e26\u7684jdk\nrpm -qa |grep java\nrpm -qa |grep jdk\nrpm -qa |grep gcj\nrpm -qa | grep java | xargs rpm -e --nodeps\n# \u5b89\u88c5openjdk\nyum install java-1.8.0-openjdk* -y<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"4a7b2590\">5.3 \u5b89\u88c5 Maven<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u43f67c53\">Maven\u4e0b\u8f7d\u5730\u5740\uff1a<a href=\"https:\/\/maven.apache.org\/download.cgi\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/maven.apache.org\/download.cgi<\/a><br>\u4e0b\u8f7d&gt;=3.8\u7684\u7248\u672c<br>\u5c06\u8f6f\u4ef6\u538b\u7f29\u5305\u4e0a\u4f20\u5230\u670d\u52a1\u5668\uff0c\u672c\u6587\u9009\u62e9<code>\/data<\/code>\u76ee\u5f55\uff1a<\/p>\n\n\n\n<pre id=\"bd07722c\" class=\"wp-block-code\"><code>#\u4f7f\u7528SecureCRT\u767b\u5f55\u540e\u7684\u9ed8\u8ba4\u5f53\u524d\u76ee\u5f55\u662f\/root\uff0c\u56e0\u6b64\u521b\u5efa\u76f4\u63a5\u6267\u884cmkdir data\u521b\u5efa\u7684\u76ee\u5f55\u5b9e\u9645\u4e0a\u662f\/root\/data\/\uff0c\u5982\u9700\u5728\u6839\u76ee\u5f55\u4e2d\u6267\u884c\uff0c\u5e94\u4f7f\u7528mkdir \/data\uff0c\u4e0b\u6587\u4e2d\u6240\u6709\u7684\u76ee\u5f55\u8def\u5f84\u5747\u57fa\u4e8e\u4e3a\/data\u3002\nmkdir \/data\ncd \/data\nwget https:\/\/dlcdn.apache.org\/maven\/maven-3\/3.9.5\/binaries\/apache-maven-3.9.5-bin.tar.gz \ntar -zxvf apache-maven-3.9.5-bin.tar.gz\nmv apache-maven-3.9.5 maven3.9\n# \u65b0\u5efa\u4ed3\u5e93\u76ee\u5f55\nmkdir ..\/data\/maven3.9\/repository<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u722d29b5\">\u66f4\u6362\u963f\u91cc\u4e91\u955c\u50cf\u5e76\u8bbe\u7f6emaven\u4ed3\u5e93\u4f4d\u7f6e\uff1a<\/p>\n\n\n\n<pre id=\"d052a8bb\" class=\"wp-block-code\"><code>vim \/data\/maven3.9\/conf\/settings.xml\n\n&lt;mirrors&gt;\n    &lt;mirror&gt;  \n       &lt;id&gt;alimaven&lt;\/id&gt;\n       &lt;name&gt;aliyun maven&lt;\/name&gt;\n       &lt;url&gt;http:\/\/maven.aliyun.com\/nexus\/content\/groups\/public\/&lt;\/url&gt;\n       &lt;mirrorOf&gt;central&lt;\/mirrorOf&gt; \n    &lt;\/mirror&gt;\n&lt;\/mirrors&gt;\n\n&lt;localRepository&gt;\/root\/data\/maven3.9\/repository&lt;\/localRepository&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ud6775614\">\u914d\u7f6e\u73af\u5883\u53d8\u91cf\uff1a<\/p>\n\n\n\n<pre id=\"29c69bca\" class=\"wp-block-code\"><code>vim \/etc\/profile\n\nexport MAVEN_HOME=\/root\/data\/maven3.9\nexport PATH=$PATH:$MAVEN_HOME\/bin<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u9ba92cc6\">\u5237\u65b0\u914d\u7f6e\u6587\u4ef6\u67e5\u770b\u7248\u672c\u4fe1\u606f\uff1a<\/p>\n\n\n\n<pre id=\"ab34c0d1\" class=\"wp-block-code\"><code>source \/etc\/profile\nmvn -v<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ab548029\"><strong>5.4 \u5b89\u88c5 NodeJS<\/strong><\/h3>\n\n\n\n<pre id=\"ad4890f8\" class=\"wp-block-code\"><code>wget https:\/\/nodejs.org\/dist\/v14.15.4\/node-v14.15.4-linux-x64.tar.xz\ntar -xvf node-v14.15.4-linux-x64.tar.xz\nmkdir -p \/usr\/local\/nodejs\nmv node-v14.15.4-linux-x64\/* \/usr\/local\/nodejs\/\n# \u5efa\u7acbnode\u8f6f\u94fe\u63a5\nln -s \/usr\/local\/nodejs\/bin\/node \/usr\/local\/bin\n# \u5efa\u7acbnpm \u8f6f\u94fe\u63a5\nln -s \/usr\/local\/nodejs\/bin\/npm \/usr\/local\/bin<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u67d1f4b5\">\u914d\u7f6e\u73af\u5883\u53d8\u91cf\uff1a<\/p>\n\n\n\n<pre id=\"ba91517c\" class=\"wp-block-code\"><code>vim \/etc\/profile\n\nexport MAVEN_HOME=\/root\/data\/maven3.9\nexport NODE_HOME=\/usr\/local\/nodejs\nexport PATH=$PATH:$MAVEN_HOME\/bin:$NODE_HOME\/bin<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"udd4d77d3\">\u5237\u65b0\u914d\u7f6e\u6587\u4ef6\u67e5\u770b\u7248\u672c\u4fe1\u606f\uff1a<\/p>\n\n\n\n<pre id=\"31e3cdff\" class=\"wp-block-code\"><code>source \/etc\/profile\nnode -v<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u3825dcdf\">\u5b89\u88c5node\u7248\u672c\u7ba1\u7406\u5de5\u5177\uff1a<\/p>\n\n\n\n<pre id=\"b029f48a\" class=\"wp-block-code\"><code>npm install n -g\n\n# \u67e5\u770b\u6240\u6709node\u7248\u672c\n# npm view node versions\n# \u6307\u5b9a\u5b89\u88c5\u7248\u672c\n# n 14.18.3\n# \u5347\u7ea7\u5230\u6700\u65b0\u7684\u7a33\u5b9a\u7248\u672c\n# n stable\n\n# \u67e5\u770bnpm\u5f53\u524d\u955c\u50cf\u6e90\nnpm config get registry  \n# \u56fd\u5185\u6e90\nnpm config set registry https:\/\/registry.npmmirror.com\/    \n# \u8bbe\u7f6enpm\u955c\u50cf\u6e90\u4e3a\u6dd8\u5b9d\u955c\u50cf\nnpm config set registry https:\/\/registry.npm.taobao.org\/<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"0fae6bc1\">5.5 \u5b89\u88c5 Docker<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"uadc9e719\">\u5378\u8f7dDocker\u65e7\u7248\u672c\uff1a<\/p>\n\n\n\n<pre id=\"84417d8f\" class=\"wp-block-code\"><code>yum remove docker \\\n     docker-client \\\n     docker-client-latest \\\n     docker-common \\\n     docker-latest \\\n     docker-latest-logrotate \\\n     docker-logrotate \\\n     docker-engine<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u388e4ec5\">\u5b89\u88c5 yum-utils \u8f6f\u4ef6\u5305\uff1a<\/p>\n\n\n\n<pre id=\"c48a266d\" class=\"wp-block-code\"><code>yum install -y yum-utils<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u5a091523\">\u8bbe\u7f6e Docker \u4ed3\u5e93\uff1a<\/p>\n\n\n\n<pre id=\"1e4c633e\" class=\"wp-block-code\"><code>yum-config-manager \\\n --add-repo \\\n http:&#47;&#47;mirrors.aliyun.com\/docker-ce\/linux\/centos\/docker-ce.repo<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"uaaea5147\">\u5b89\u88c5\u6700\u65b0\u7248\u672c\u7684 Docker\uff1a<\/p>\n\n\n\n<pre id=\"f32a38d5\" class=\"wp-block-code\"><code>yum install -y docker-ce docker-ce-cli containerd.io<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u4f03d586\">\u542f\u52a8 Docker\uff1a<\/p>\n\n\n\n<pre id=\"4dfca815\" class=\"wp-block-code\"><code>systemctl enable docker --now\ndocker version<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"f2f41f4b\">5.6 \u5b89\u88c5 Docker-Compose<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ue0b266bd\">\u7f51\u7edc\u4e0d\u597d\u7684\u8bdd\uff0c\u53ef\u4ee5\u63d0\u524d\u4e0b\u8f7d\u597d\u4e0a\u4f20\u5230<code>\/usr\/local\/bin<\/code>\u76ee\u5f55\uff1a<\/p>\n\n\n\n<pre id=\"928e7b8c\" class=\"wp-block-code\"><code>wget https:\/\/github.com\/docker\/compose\/releases\/download\/1.24.0\/docker-compose-Linux-x86_64\nmv docker-compose-Linux-x86_64 \/usr\/local\/bin\/docker-compose\nchmod +x \/usr\/local\/bin\/docker-compose\ndocker-compose --version<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"e2de1008\">6\u3001\u514b\u9686\u9879\u76ee<\/h2>\n\n\n\n<pre id=\"1f734b43\" class=\"wp-block-code\"><code>mkdir \/root\/data\/service cd \/root\/data\/service\nmkdir link-wechat &amp;&amp; cd link-wechat\ngit clone https:\/\/gitee.com\/LinkWeChat\/link-wechat\ngit clone https:\/\/gitee.com\/LinkWeChat\/link-we-chat-front\ngit clone https:\/\/gitee.com\/LinkWeChat_admin\/linkwechat-docker<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"29377d3f\">6.1 \u540e\u7aef\u914d\u7f6e<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"uc4211178\">\u4fee\u6539\u540e\u7aef\u914d\u7f6e\u6587\u4ef6\uff1a<\/p>\n\n\n\n<pre id=\"249a1251\" class=\"wp-block-code\"><code># \u8fdb\u5165\u540e\u7aef\u76ee\u5f55(\/root\/data\/service\/link-wechat\/link-wechat)\ncd link-wechat\nvim pom.xml<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u6610aebf\">\u7b2c\u4e00\u4e2a\u662f\u9879\u76ee\u6839\u76ee\u5f55\u4e0b\u7684<code>pom.xml<\/code>\u6587\u4ef6\uff0c\u9700\u8981\u627e\u5230<code>org.springframework.cloud<\/code>\uff0c\u6dfb\u52a0\u7248\u672c\u4fe1\u606f\uff1a<\/p>\n\n\n\n<pre id=\"ed19f297\" class=\"wp-block-code\"><code>&lt;dependency&gt;\n    &lt;groupId&gt;org.springframework.cloud&lt;\/groupId&gt;\n    &lt;artifactId&gt;spring-cloud-starter-bootstrap&lt;\/artifactId&gt;\n    &lt;version&gt;3.1.1&lt;\/version&gt;\n&lt;\/dependency&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ubd53b0e5\">\u7b2c\u4e8c\u4e2a\u662f<code>.\/config\/run\/<\/code>\u76ee\u5f55\u4e0b\u7684<code>bootstrap.yml<\/code>\u6587\u4ef6\uff0c\u4f7f\u7528<code>linkwechat-docker\/config<\/code>\u76ee\u5f55\u4e0b\u7684<code>bootstrap.yml<\/code>\u6587\u4ef6\u66ff\u6362\uff1a<\/p>\n\n\n\n<pre id=\"34769563\" class=\"wp-block-code\"><code>cd \/root\/data\/service\/link-wechat\/link-wechat\/config\/run\n\ncp ..\/..\/..\/linkwechat-docker\/config\/bootstrap.yml .\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u2a15c5cc\">\u4ee3\u7801\u6253\u5305\uff1a<\/p>\n\n\n\n<pre id=\"26dd058a\" class=\"wp-block-code\"><code>cd \/root\/data\/service\/link-wechat\/link-wechat\/\nmvn clean package<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"db0aede7\">6.2 \u524d\u7aef\u914d\u7f6e<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u0a3623e9\">\u4fee\u6539\u524d\u7aef\u914d\u7f6e\u6587\u4ef6\uff1a<\/p>\n\n\n\n<pre id=\"3fa79bc7\" class=\"wp-block-code\"><code># \u8fdb\u5165\u524d\u7aef\u76ee\u5f55\ncd \/root\/data\/service\/link-wechat\/link-we-chat-front\ncd vue3-lw-pc\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u065838c4\">\u4fee\u6539<code>env.js<\/code>\u6587\u4ef6\uff1a127.0.0.1 \u4fee\u6539\u6210\u5bf9\u5e94\u7684\u670d\u52a1\u5668 ip \u6216\u57df\u540d\uff0c\u5176\u4f59\u4e0d\u53d8\uff1a<\/p>\n\n\n\n<pre id=\"e3d39598\" class=\"wp-block-code\"><code>\/**\n *  * \u73af\u5883\u53d8\u91cf\n *   * \u4ee5\u4e0b\u5212\u7ebf '_' \u5f00\u5934\u7684\u5b57\u6bb5\u8868\u793a\u53ea\u5728build\u547d\u4ee4\u6253\u5305\u65f6\u6709\u6548\uff0c\u52ff\u5728\u9879\u76ee\u4e2d\u4f7f\u7528\n *    *\/\nconst envs = {\n  production: {\n    DOMAIN: 'http:\/\/127.0.0.1',\t\t\t\t\/\/ &lt;---\u8fd9\u91cc\n    BASE_URL: '.\/', \/\/ \u8def\u7531\u57fa\u7840\u8def\u5f84\n    BASE_API: 'http:\/\/127.0.0.1\/api',\t\/\/ &lt;---\u8fd9\u91cc\n    SYSTEM_API: '\/api',\n    _ISGZIP: true, \/\/ \u662f\u5426\u5f00\u542fgzip\u538b\u7f29\n    _ISCDN: true, \/\/ \u662f\u5426\u5f00\u542fcdn\u52a0\u901f\n  },\n}\nconst env = Object.assign(\n  { SYSTEM_NAME_ALL: 'LinkWeChat -- \u5168\u94fe\u8def\u79c1\u57df\u6570\u5b57\u5316\u8425\u9500\u589e\u957f\u89e3\u51b3\u65b9\u6848' },\n  envs&#91;process.env.VUE_APP_ENV || process.env.NODE_ENV],\n)\n\nmodule.exports = env<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u0881f629\">\u4ee3\u7801\u6253\u5305\uff1a<\/p>\n\n\n\n<pre id=\"c4783c50\" class=\"wp-block-code\"><code>npm i --registry=https:\/\/registry.npmmirror.com\nnpm run build<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ub67a7e3c\">\u8fd9\u91cc\u662f\u6700\u5bb9\u6613\u51fa\u9519\u7684\u5730\u65b9\uff0c\u53ef\u80fd\u4f1a\u56e0\u4e3anode\u7248\u672c\u6216\u7f51\u7edc\u73af\u5883\uff0c\u65e0\u6cd5\u4e0b\u8f7d\u4f9d\u8d56\uff0c\u6216\u65e0\u6cd5\u6253\u5305\uff0c\u9700\u8981\u591a\u8bd5\u51e0\u6b21\uff1b<br>\u6700\u76f4\u63a5\u7684\u65b9\u6cd5\u662f\u5728\u7f51\u7edc\u73af\u5883\u597d\u7684\u5730\u65b9\u6253\u597d\u5305\uff0c\u4f1a\u751f\u6210\u4e00\u4e2aPC\u76ee\u5f55\uff0c\u7136\u540e\u4e0a\u4f20\u5230\u524d\u7aef\u9879\u76ee\u6839\u76ee\u5f55\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"784b62bb\">6.3 \u9879\u76ee Docker \u76ee\u5f55\u914d\u7f6e<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ucdeebf88\">\u4fee\u6539\u914d\u7f6e\u6587\u4ef6\uff1a<\/p>\n\n\n\n<pre id=\"9b4eb759\" class=\"wp-block-code\"><code># \u8fdb\u5165\u9879\u76eedocker\u76ee\u5f55\ncd \/root\/data\/service\/link-wechat\/linkwechat-docker<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u69703c80\">\u4fee\u6539<code>copy.sh<\/code>\u6587\u4ef6\uff1a\u5c06\u524d\u7aef\u76ee\u5f55\u4fee\u6539\u6210\u5b9e\u9645\u7684\u76ee\u5f55\uff0c\u6ce8\u91ca\u6389\u5bf9<code>linkwe-mobile<\/code>\u76ee\u5f55\u7684\u64cd\u4f5c\uff08\u79fb\u52a8\u7aef\u4e0d\u5f00\u6e90\uff09\uff1a<\/p>\n\n\n\n<pre id=\"9f845cb8\" class=\"wp-block-code\"><code>cp -r ..\/link-we-chat-front\/vue3-lw-pc\/pc\/** .\/nginx\/html\/pc\n# cp -r ..\/link-we-chat-front\/linkwe-mobile\/h5\/** .\/nginx\/html\/mobile<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u72bc2c9d\">\u4fee\u6539<code>config\/pc\/<\/code>\u76ee\u5f55\u4e0b\u7684<code>env.js<\/code>\u6587\u4ef6\uff1a127.0.0.1 \u4fee\u6539\u6210\u5bf9\u5e94\u7684\u670d\u52a1\u5668 ip \u6216\u57df\u540d\uff0c\u5176\u4f59\u4e0d\u53d8\uff1a<\/p>\n\n\n\n<pre id=\"53e0c45e\" class=\"wp-block-code\"><code>cd config\/pc\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u1bae17fc\">\u4fee\u6539<code>config\/mobile\/<\/code>\u76ee\u5f55\u4e0b\u7684<code>env.js<\/code>\u6587\u4ef6\uff1a127.0.0.1 \u4fee\u6539\u6210\u5bf9\u5e94\u7684\u670d\u52a1\u5668 ip \u6216\u57df\u540d\uff0c\u5e76\u4fee\u6539\u6210\u4f01\u4e1a\u5fae\u4fe1\u5bf9\u5e94\u7684 CorpID \u548c\u5e94\u7528 ID\uff1a<\/p>\n\n\n\n<pre id=\"f676f37a\" class=\"wp-block-code\"><code>cd \/data\/service\/link-wechat\/linkwechat-docker\/config\/mobile<\/code><\/pre>\n\n\n\n<pre id=\"0da866dd\" class=\"wp-block-code\"><code>vim env.js\n\nconst envs = {\n  production: {\n    BASE_URL: '\/mobile\/', \/\/ \u8def\u7531\u57fa\u7840\u8def\u5f84\n    BASE_API: 'http:\/\/127.0.0.1\/api',\t\t\/\/ &lt;---\u8fd9\u91cc\n    APPID: '\u8fd9\u91cc\u586b\u5145\u81ea\u5df1\u7684\u4f01\u4e1a\u5fae\u4fe1CorpID',\t\t\t\t\/\/ &lt;---\u8fd9\u91cc\n    AGENTID: '\u8fd9\u91cc\u586b\u5145\u81ea\u5df1\u7684\u5e94\u7528ID',\t\t\t\t\t\t\t\t\/\/ &lt;---\u8fd9\u91cc\n  },\n}\nlet env = envs&#91;process.env.VUE_APP_ENV]\n\nmodule.exports = env<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"uecb26a3c\">\u56de\u5230\u9879\u76ee Docker \u6839\u76ee\u5f55\uff1a<\/p>\n\n\n\n<pre id=\"e0881ff7\" class=\"wp-block-code\"><code>cd \/root\/data\/service\/link-wechat\/linkwechat-docker<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u19aca884\">\u6267\u884c<code>Copy<\/code>\u811a\u672c\uff1a<\/p>\n\n\n\n<pre id=\"9ce8af5a\" class=\"wp-block-code\"><code># \u62f7\u8d1d\u6307\u5b9a\u6587\u4ef6\u5230\u5bf9\u5e94\u76ee\u5f55\nsh copy.sh<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u04fc3106\">\u542f\u52a8<code>Mysql<\/code>\uff1a<\/p>\n\n\n\n<pre id=\"849f1f07\" class=\"wp-block-code\"><code>docker-compose up -d lw-mysql<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"udd10b8ee\">\u68c0\u67e5<code>Mysql<\/code>\u72b6\u6001\uff1a<\/p>\n\n\n\n<pre id=\"2132911c\" class=\"wp-block-code\"><code>docker exec -it lw-mysql bash\ncd \/docker-entrypoint-initdb.d\/\nls<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u9aced68c\">\u82e5\u53d1\u73b0\u521d\u59cb\u5316\u76ee\u5f55\u4e3a\u7a7a\uff0c\u8fde\u63a5mysql\uff0c\u67e5\u770b\u6570\u636e\u5e93\u521b\u5efa\u60c5\u51b5\uff1a<br><img decoding=\"async\" src=\"https:\/\/cdn.nlark.com\/yuque\/0\/2023\/png\/575078\/1691127761674-b15ad95d-e0ef-4570-ad8f-6b1b89a74d66.png#averageHue=%23faf9f9&amp;clientId=uc3644c31-4735-4&amp;from=paste&amp;height=504&amp;id=ucaf1f8bb&amp;originHeight=504&amp;originWidth=1586&amp;originalType=binary&amp;ratio=1&amp;rotation=0&amp;showTitle=false&amp;size=63794&amp;status=done&amp;style=none&amp;taskId=ufd1d0975-6344-40cd-b66b-f1a241574b8&amp;title=&amp;width=1586?x-oss-process=image%2Fwatermark%2Ctype_d3F5LW1pY3JvaGVp%2Csize_45%2Ctext_TGlua1dlQ2hhdA%3D%3D%2Ccolor_FFFFFF%2Cshadow_50%2Ct_80%2Cg_se%2Cx_10%2Cy_10\" width=\"1586\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u88f6e9a0\">\u624b\u52a8\u5bfc\u5165sql\u6587\u4ef6\uff1a<br><img decoding=\"async\" src=\"https:\/\/cdn.nlark.com\/yuque\/0\/2023\/png\/575078\/1691127870466-7bc64cbf-0c76-4584-8892-449811175d24.png#averageHue=%23f2f1f0&amp;clientId=uc3644c31-4735-4&amp;from=paste&amp;height=482&amp;id=uc1a0ed41&amp;originHeight=482&amp;originWidth=401&amp;originalType=binary&amp;ratio=1&amp;rotation=0&amp;showTitle=false&amp;size=30507&amp;status=done&amp;style=none&amp;taskId=u036bb4bb-e08a-4d92-b890-0deb5c25409&amp;title=&amp;width=401?x-oss-process=image%2Fwatermark%2Ctype_d3F5LW1pY3JvaGVp%2Csize_11%2Ctext_TGlua1dlQ2hhdA%3D%3D%2Ccolor_FFFFFF%2Cshadow_50%2Ct_80%2Cg_se%2Cx_10%2Cy_10\" width=\"401\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u39402dff\">\u5bfc\u5165\u540e\uff1a<br><img decoding=\"async\" src=\"https:\/\/cdn.nlark.com\/yuque\/0\/2023\/png\/575078\/1691127939570-2cc86fcf-986c-4fb7-800e-8d0c2139a568.png#averageHue=%23f7f6f4&amp;clientId=uc3644c31-4735-4&amp;from=paste&amp;height=581&amp;id=u78593f12&amp;originHeight=581&amp;originWidth=1074&amp;originalType=binary&amp;ratio=1&amp;rotation=0&amp;showTitle=false&amp;size=92621&amp;status=done&amp;style=none&amp;taskId=ufc62d63f-9401-46a1-a59c-0fd48c44ad1&amp;title=&amp;width=1074?x-oss-process=image%2Fwatermark%2Ctype_d3F5LW1pY3JvaGVp%2Csize_31%2Ctext_TGlua1dlQ2hhdA%3D%3D%2Ccolor_FFFFFF%2Cshadow_50%2Ct_80%2Cg_se%2Cx_10%2Cy_10\" width=\"1074\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u748a2bad\">\u542f\u52a8 Nacos\uff1a<\/p>\n\n\n\n<pre id=\"a7f0d7a4\" class=\"wp-block-code\"><code>docker-compose up -d lw-nacos<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ud461e6b0\">\u68c0\u67e5 Nacos \u72b6\u6001\uff1a<\/p>\n\n\n\n<pre id=\"4afe94f2\" class=\"wp-block-code\"><code>docker ps -a<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u21f91518\">\u8bbf\u95ee\u670d\u52a1\u5668 IP:8848\/nacos\uff1a<br><img decoding=\"async\" src=\"https:\/\/cdn.nlark.com\/yuque\/0\/2023\/png\/575078\/1691128175149-9a912c4b-ec7c-4272-b226-025045f69f9b.png#averageHue=%23fcfcfb&amp;clientId=uc3644c31-4735-4&amp;from=paste&amp;height=969&amp;id=u917ae157&amp;originHeight=969&amp;originWidth=1865&amp;originalType=binary&amp;ratio=1&amp;rotation=0&amp;showTitle=false&amp;size=134177&amp;status=done&amp;style=none&amp;taskId=u9ecbc318-8aba-4e79-abe6-1404aab3655&amp;title=&amp;width=1865?x-oss-process=image%2Fwatermark%2Ctype_d3F5LW1pY3JvaGVp%2Csize_53%2Ctext_TGlua1dlQ2hhdA%3D%3D%2Ccolor_FFFFFF%2Cshadow_50%2Ct_80%2Cg_se%2Cx_10%2Cy_10\" width=\"1865\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u9a12f4d0\">auth\u6a21\u5757 \u7684 nacos yaml\u6587\u4ef6\u672b\u5c3e\u8bf7\u6dfb\u52a0\u5982\u4e0b\u5185\u5bb9\uff1a<\/p>\n\n\n\n<pre id=\"d99f825d\" class=\"wp-block-code\"><code>rsa:\n  privateKey: MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKNPuH3owIDAQABAkAfoiLyL+Z4lf4Myxk6xUDgLaWGximj20CUf+5BKKnlrK+Ed8gAkM0HqoTt2UZwA5E2MzS4EI2gjfQhz5X28uqxAiEA3wNFxfrCZlSZHb0gn2zDpWowcSxQAgiCstxGUoOqlW8CIQDDOerGKH5OmCJ4Z21v+F25WaHYPxCFMvwxpcw99EcvDQIgIdhDTIqD2jfYjPTY8Jj3EDGPbH2HHuffvflECt3Ek60CIQCFRlCkHpi7hthhYhovyloRYsM+IS9h\/0BzlEAuO0ktMQIgSPT3aFAgJYwKpqRYKlLDVcflZFCKY7u3UP8iWi1Qw0Y=\n  publicKey: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu\/TJhZ7rFAN+eaGkl3C4buccQd\/EjEsj9ir7ijT7h96MCAwEAAQ==<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u8459ec25\">\u542f\u52a8 Redis\uff1a<\/p>\n\n\n\n<pre id=\"fe625985\" class=\"wp-block-code\"><code>docker-compose up -d lw-redis\ndocker ps -a<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"uc1d67637\">\u542f\u52a8 Rabbitmq \u3001xxl-job\uff1a<\/p>\n\n\n\n<pre id=\"d99fc781\" class=\"wp-block-code\"><code>docker-compose up -d lw-rabbitmq lw-xxl-job<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ub552bd2d\">\u542f\u52a8\u9879\u76ee\u6a21\u5757\uff1a<\/p>\n\n\n\n<pre id=\"a822e0a9\" class=\"wp-block-code\"><code>sh deploy.sh modules<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u6bf82def\">\u9879\u76ee\u6a21\u5757\u6e05\u5355\uff1a<\/p>\n\n\n\n<pre id=\"224cd6f8\" class=\"wp-block-code\"><code>lw-nginx \nlw-gateway \nlw-auth \nlw-modules-api \nlw-modules-file \nlw-modules-scheduler \nlw-modules-wecom \nlw-modules-wx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"uc891c37e\">\u68c0\u67e5\u9879\u76ee\u6a21\u5757\u542f\u52a8\u72b6\u6001\uff1a<br><img decoding=\"async\" src=\"https:\/\/cdn.nlark.com\/yuque\/0\/2023\/png\/575078\/1691131807638-c3d789a2-5c24-4bd5-808b-810c9c235a98.png#averageHue=%23242120&amp;clientId=uc3644c31-4735-4&amp;from=paste&amp;height=466&amp;id=ufa896562&amp;originHeight=466&amp;originWidth=1402&amp;originalType=binary&amp;ratio=1&amp;rotation=0&amp;showTitle=false&amp;size=86048&amp;status=done&amp;style=none&amp;taskId=u5111b33b-5d28-4a2f-9d06-1ccd6063468&amp;title=&amp;width=1402?x-oss-process=image%2Fwatermark%2Ctype_d3F5LW1pY3JvaGVp%2Csize_40%2Ctext_TGlua1dlQ2hhdA%3D%3D%2Ccolor_FFFFFF%2Cshadow_50%2Ct_80%2Cg_se%2Cx_10%2Cy_10\" width=\"1402\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"ue2bb9e96\">\u8bbf\u95ee\u670d\u52a1\u5668IP\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"u91e60a83\">\u7ed3\u675f\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u7279\u522b\u8bf4\u660e\uff1a 1\u3001\u670d\u52a1\u5668\u4fe1\u606f\uff1a \u7ec4\u4ef6 \u7c7b\u578b \u64cd\u4f5c\u7cfb\u7edf CentOS 7.9 CPU 4\u6838 \u5185\u5b58 16G \u5e26\u5bbd 5<br \/><a class=\"moretag\" href=\"http:\/\/www.x4s.cn\/?p=203\">+ Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[18,17,7],"class_list":["post-203","post","type-post","status-publish","format-standard","hentry","category-apps","tag-centos","tag-linux","tag-7"],"_links":{"self":[{"href":"http:\/\/www.x4s.cn\/index.php?rest_route=\/wp\/v2\/posts\/203","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.x4s.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.x4s.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.x4s.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.x4s.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=203"}],"version-history":[{"count":10,"href":"http:\/\/www.x4s.cn\/index.php?rest_route=\/wp\/v2\/posts\/203\/revisions"}],"predecessor-version":[{"id":250,"href":"http:\/\/www.x4s.cn\/index.php?rest_route=\/wp\/v2\/posts\/203\/revisions\/250"}],"wp:attachment":[{"href":"http:\/\/www.x4s.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=203"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.x4s.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=203"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.x4s.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=203"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}