当前位置: 首页 > news >正文

建站宝盒建站系统同wordpress

建站宝盒建站系统,同wordpress,怎么样做跨境电商,电子政务网站建设公司排行榜概述 通过docker形式部署yapi#xff0c;需要准备一个mongodb#xff0c;然后直接在一个空文件夹里写好Dockerfile#xff0c;其中通过wget下载yapi的zip包。 基本按照这篇文章#xff1a;https://www.modb.pro/db/149666 来处理即可 1. 准备mongodb 把mongodb的docker…概述 通过docker形式部署yapi需要准备一个mongodb然后直接在一个空文件夹里写好Dockerfile其中通过wget下载yapi的zip包。 基本按照这篇文章https://www.modb.pro/db/149666 来处理即可 1. 准备mongodb 把mongodb的docker 跑起来, --auth 表示需要密码才能访问 docker run -d --name mongodb -p 27017:27017 -v /usr/local/mongo_data/db:/data/db -v /usr/local/mongo_data/configdb:/data/configdb mongo:4.2 --auth注意 原文中启动mongo的容器是这样的 首先创建MongoDB的数据卷 docker volumn create mongo_data 然后启动 docker run -d --name mongo -p 27017:27017 -v mongo_data:/data mongo:4.2 --auth但是这并不能让data中的文件持久化到宿主机上原因见后节分析。 这个mongo:4.2就是镜像名tag也可以直接写mongo就是拉取最新latest。 然后进入mongodb的docker进行一些admin的用户配置以下全部照抄前文所述的文章里的步骤 docker exec -it docker-id mongo admin 创建一个用户admin db.createUser({user:admin,pwd:123456,roles:[{role:userAdminAnyDatabase,db:admin}]}); 登陆db db.auth(admin,123456) 授予root角色 db.grantRolesToUser(admin, [{role:root,db:admin}]) 然后mongodb的操作就结束了接下来是准备部署yapi Docker部署yapi 现在开始打镜像找到一个空文件夹里写一个Dockerfile即可如下。 FROM node:12-alpine as builder WORKDIR /yapi RUN apk add --no-cache wget make ENV VERSION1.12.0 RUN wget https://github.com/YMFE/yapi/archive/refs/tags/v${VERSION}.zip RUN unzip v${VERSION}.zip mv yapi-${VERSION} vendors RUN cd /yapi/vendors npm install --production --registry https://registry.npm.taobao.orgFROM node:12-alpine ENV TZAsia/Shanghai WORKDIR /yapi/vendors COPY --frombuilder /yapi/vendors /yapi/vendors RUN mv /yapi/vendors/config_example.json /yapi/config.json EXPOSE 3000 ENTRYPOINT [node]构建镜像 docker build -t harbor.xxx.com/yapi:v1.0 . 推送镜像(如果仅需在本地跑不需要建议备份) docker push harbor.xxx.com/yapi:v1.0 本地准备好一个配置文件config.json待会儿会挂载到容器里使用这样比打进镜像里来说更灵活一些。 (这个db的servername最好写成具体的ip起码是网络里能连接到的直接写127.0.0.1好像有问题) 另外就是mongodb的用户名和密码跟前边设定的保持一致。 {port: 3000,adminAccount: adminadmin.com,timeout:120000,db: {servername: 127.0.0.1,DATABASE: yapi,port: 27017,user: admin,pass: 123456,authSource: admin},mail: {enable: true,host: abc.com,port: 465,from: abcabc.com,auth: {user: abcabc.com,pass: abc}} }注意在config.json的当前文件夹下执行因为命令里会包括$PWD 首先初始化 docker run -it --rm \ --entrypoint npm \ --workdir /yapi/vendors \ -v $PWD/config.json:/yapi/config.json \ yapi run install-server会看到以下内容 .... 初始化管理员账号成功,账号名adminadmin.com密码ymfe.org然后启动yapi尽量换个名字可能yapi这个名字冲突了 docker run -d --name yapi-server \ --workdir /yapi/vendors \ -p 5000:3000 \ -v $PWD/config.json:/yapi/config.json \ yapi server/app.js可以看到以下日志输出 log: -------------------------------------swaggerSyncUtils constructor----------------------------------------------- log: 服务已启动请打开下面链接访问: http://127.0.0.1:3000/ log: mongodb load success...然后访问3000即可。 持久化mongo数据 以下操作不能同步/data/db内的文件到宿主机 挂载卷 - # docker volume inspect mongo_data [{CreatedAt: 2023-07-25T17:36:0508:00,Driver: local,Labels: null,Mountpoint: /var/lib/docker/volumes/mongo_data/_data,Name: mongo_data,Options: null,Scope: local} ]可以发现这个用的宿主机路径为/var/lib/docker/volumes/mongo_data/_data 切换到路径上可以看到确实有两个跟mongo的/data相同的文件夹 rootcloud-virtual-machine [11:30:46 AM] [/var/lib/docker/volumes/mongo_data/_data] - # pwd /var/lib/docker/volumes/mongo_data/_data rootcloud-virtual-machine [11:30:47 AM] [/var/lib/docker/volumes/mongo_data/_data] - # ls configdb/ db/但是进入子目录会发现什么都没有 rootcloud-virtual-machine [11:30:48 AM] [/var/lib/docker/volumes/mongo_data/_data] - # cd db rootcloud-virtual-machine [11:31:13 AM] [/var/lib/docker/volumes/mongo_data/_data/db] - # ls -l total 0但是挂载了该卷的容器内是有东西的 - # docker exec -it 97f6c5df69db bash root97f6c5df69db:/# cd /data/ root97f6c5df69db:/data# ls configdb db root97f6c5df69db:/data# cd db/ root97f6c5df69db:~# ls WiredTiger collection-17--2171366465605763899.wt collection-76--2171366465605763899.wt index-107--2171366465605763899.wt index-3--2171366465605763899.wt index-50--2171366465605763899.wt index-69--2171366465605763899.wt index-91--2171366465605763899.wt WiredTiger.lock collection-19--2171366465605763899.wt collection-77--2171366465605763899.wt index-12--2171366465605763899.wt index-30--2171366465605763899.wt index-53--2171366465605763899.wt index-73--2171366465605763899.wt index-92--2171366465605763899.wt WiredTiger.turtle collection-2--2171366465605763899.wt collection-8--2171366465605763899.wt index-13--2171366465605763899.wt index-31--2171366465605763899.wt index-54--2171366465605763899.wt index-75--2171366465605763899.wt index-93--2171366465605763899.wt WiredTiger.wt collection-4--2171366465605763899.wt collection-88--2171366465605763899.wt index-15--2171366465605763899.wt index-33--2171366465605763899.wt index-55--2171366465605763899.wt index-78--2171366465605763899.wt index-96--2171366465605763899.wt WiredTigerLAS.wt collection-45--2171366465605763899.wt diagnostic.data index-20--2171366465605763899.wt index-36--2171366465605763899.wt index-56--2171366465605763899.wt index-79--2171366465605763899.wt index-97--2171366465605763899.wt _mdb_catalog.wt collection-46--2171366465605763899.wt index-1--2171366465605763899.wt index-21--2171366465605763899.wt index-38--2171366465605763899.wt index-59--2171366465605763899.wt index-80--2171366465605763899.wt journal collection-0--2171366465605763899.wt collection-49--2171366465605763899.wt index-10--2171366465605763899.wt index-22--2171366465605763899.wt index-40--2171366465605763899.wt index-6--2171366465605763899.wt index-82--2171366465605763899.wt mongod.lock collection-100--2171366465605763899.wt collection-51--2171366465605763899.wt index-101--2171366465605763899.wt index-23--2171366465605763899.wt index-42--2171366465605763899.wt index-60--2171366465605763899.wt index-84--2171366465605763899.wt sizeStorer.wt collection-103--2171366465605763899.wt collection-52--2171366465605763899.wt index-102--2171366465605763899.wt index-25--2171366465605763899.wt index-47--2171366465605763899.wt index-63--2171366465605763899.wt index-85--2171366465605763899.wt storage.bson collection-11--2171366465605763899.wt collection-72--2171366465605763899.wt index-105--2171366465605763899.wt index-26--2171366465605763899.wt index-48--2171366465605763899.wt index-64--2171366465605763899.wt index-86--2171366465605763899.wt collection-16--2171366465605763899.wt collection-74--2171366465605763899.wt index-106--2171366465605763899.wt index-29--2171366465605763899.wt index-5--2171366465605763899.wt index-68--2171366465605763899.wt index-9--2171366465605763899.wt也就是说挂载卷与对应容器路径内的文件并不同步。 问题分析与解决 考虑两个方向一是权限问题无法写入而是挂载点冲突导致挂载configdb和db之后宿主机目录和docker内的目录其实是两个不相干的环境。 考虑是否是权限问题 rootcloud-virtual-machine [11:38:24 AM] [/var/lib/docker/volumes/mongo_data] - # ls -l total 4.0K drwxr-xr-x 4 root root 4.0K 2023-08-01 11:14 _data/但是docker容器是root启动的啊。 考虑挂载点冲突问题 找到了一个非常类似的问题https://forums.balena.io/t/container-volume-can-not-in-sync-with-host-os-volume/17339 根据这个问题中的解决思路去dockerhub查找一下mongo4.2的Dockerfile https://hub.docker.com/layers/arm64v8/mongo/4.2.6/images/sha256-25821e16c7c401986caa09fba3be08b103203a1599edaba8cd34366903b4b3e6?contextexplore 可以看到其中有一层是这个挂载 VOLUME [/data/db /data/configdb]跟回答问题的老哥说的比较相符 it seems like you define /data/db and /data/configdb as volumes (https://github.com/andresvidal/rpi3-mongodb3/blob/master/Dockerfile#L28 11). This means that docker will create a new volume on run that holds the data that was specified in the Dockerfile (https://docs.docker.com/engine/reference/#volume 5). So the resin-data volume is mounted at /data and there are two new mount points at /data/db and /data/configdb. 也就是说在Dockerfile中已经指定了/data/db和/data/configdb作为卷volumedocker在运行容器的时候会为此创建一个新的卷用于存储这两个目录因此我们设定的mongo_data卷会被挂载到data而其下的db和configdb是两个与此有别的挂载点。 表现为mongo_data中只包含/data下的configdb和db文件夹而这两个文件夹中的内容已经被挂载到了另外的卷上所以并不会同步到mongo_data中。 综上所述如果要挂载到本地的话就直接指定/data/db和/data/configdb不要指定/data。 查看原mongo容器的挂载点 Mounts: [{Type: volume,Name: mongo_data,Source: /var/lib/docker/volumes/mongo_data/_data,Destination: /data,Driver: local,Mode: z,RW: true,Propagation: },{Type: volume,Name: 438a9fc537cfcf0848c57ef695a48212660c204738ebfd9dd9f2b5c30b1880a6,Source: /var/lib/docker/volumes/438a9fc537cfcf0848c57ef695a48212660c204738ebfd9dd9f2b5c30b1880a6/_data,Destination: /data/configdb,Driver: local,Mode: ,RW: true,Propagation: },{Type: volume,Name: 1204f82b87721509bfb996e36b0d0ab6e9cd1a37fe81ec78284fa50c6f369f43,Source: /var/lib/docker/volumes/1204f82b87721509bfb996e36b0d0ab6e9cd1a37fe81ec78284fa50c6f369f43/_data,Destination: /data/db,Driver: local,Mode: ,RW: true,Propagation: }],可以验证除了mongo_data外还分别挂载了/db和/configdb到两个其他的地方。 mongodb操作 mongodb数据备份 注意要指定–authenticationDatabase否则默认的是什么SHA256的方式会报错。 mongodump --username admin --password mypassword --authenticationDatabase admin --db mydatabase --out ./backupmongo备份还原 mongorestore -u admin --password 123456 --authenticationDatabase admin --db yapi /backup1053/yapi
http://www.zqtcl.cn/news/610153/

相关文章:

  • 做一个自己的网站需要什么商标设计网站猪八戒
  • 傻瓜式网站建设软件保险预约
  • 网站 备案规定自己做简单网站
  • 网站上怎么做支付接口南乐网站建设
  • 咸阳网站建设公司电话做个公司网站大概多少钱
  • 网站如何做关键词排名点子网创意网
  • 浙江建设培训考试网站河源东莞网站建设
  • 网站移动端做pc端的301跳转哪些网站是增值网
  • wordpress新闻站浙江耀华建设集团网站
  • 网站开发代理企业网站推广技巧和方法
  • 俄语网站开发用模板做的网站多少钱
  • 丽水网站建设公司广州网络公司
  • 做基金的网站哪个好针对大学生推广引流
  • 国外对旅游网站的建设互联网推广和互联网营销
  • 海南省建设厅网站首页有什么做设计的兼职网站
  • 网站导航功能苏州市高新区建设局网站
  • jsp网站 值班多语种网站开发
  • 公司网站英文做电商
  • 合肥企业网站建设公司哪家好卖产品怎么做网站
  • 网站建设公司86215中国中小企业网站
  • 做网站 如何 挣钱游戏网站开发协议
  • 网站建设发展wordpress比较慢
  • 收费网站推广动漫制作就业方向
  • 湖北优化网站建设设计公司需要什么资质
  • 个人网站怎么制作wordpress创意小工具
  • 网站管理维护怎么做在线oa
  • vue做企业网站wordpress 不发送邮件
  • 深圳做网站哪家便宜邮政编码html编写
  • 黑龙江营商环境建设局网站门户网站整改报告
  • 是不是做推广都得有网站深圳网站建设新闻