如何重建 LaunchPad 数据库

如何重建 LaunchPad 数据库,第1张

~/Library/Application Support/Dock/

复制代码

所有代码直接用 Terminal(终端)执行,无需root权限。

清空:

sqlite3 ~/Library/Application\ Support/Dock/*.db 'DELETE FROM apps' &&killall Dock

复制代码

清空后可以将 App 拖入 Launchpad

重置:

rm -f ~/Library/Application\ Support/Dock/*.db &&killall Dock

复制代码

会恢复 Launchpad 至出厂设置(苹果自家应用在第一页)

隐藏 App:

现在可以使用新的工具来隐藏 Launchpad 的应用了

http://mac.pcbeta.com/viewthread.php?tid=60410&extra=

手动整理:

首先需要一个 SQLite 数据库编辑器(下载 Base 2.1)

删除:把在 ~/Library/Application Support/Dock/ 里面的 .db 文件打开,把想要删除的东西删掉

重建缓存:把 image_cache 表 drop 掉即可

保存数据库后

killall Dock

有 Apollo 用户已经提供了现成的 Dcoker 镜像 ,我们可以直接使用。不过这里还是将通过编译源代码的方式来介绍,目的是从最原始 *** 作开始,了解整个过程的实现。

环境要求

JDK 1.8+ (安装后,修改 Path 环境变量)Maven 3.5+ (安装后,修改 Path 环境变量,建议修改 Maven 源地址,加快下载速度)MySQL 5.6.5+Docker JDK 和 Maven 只在编译 Apollo 源代码时使用,实际使用 Docker 部署并不需要。

创建数据库

从部署策略图中可以看出,搭建 Apollo 环境需要使用到 PortalDB、ConfigDB 两个数据库,这两个数据库的初始脚本官方源码中已提供:

我们需要在自己的数据库上执行以上两个文件的脚本,这里将搭建一个基于 PRO 的分布式环境( 如果需要支持多个环境,需要在对应环境的数据库上建 ConfigDB,服务启动改成对应环境的数据库连接,更多请参考 调整ApolloPortalDB配置 和 调整ApolloConfigDB配置 ),如下: #构建 Docker 镜像 1. 下载最新 apollo master 分支 代码(当前是 1.5.0-SNAPSHOT),网上很多介绍都需要修改源代码后再进行编译,这个版本已有哥们提交了 Merge Request ,使在 Docker 部署上更简化了。如有特殊需要,也可自行修改源码。 2. 下载完成后在根目录下执行 .\scripts\build.bat(我是在 windows 进行编译的),编译成功后在 apollo-adminservice、apollo-configservice、apollo-portal 下的 target 目录会生成对应压缩包 pollo-configservice-1.5.0-SNAPSHOT-github.zip、apollo-adminservice-1.5.0-SNAPSHOT-github.zip、apollo-portal-1.5.0-SNAPSHOT-github.zip,这个几个文件就是我们在构建 Docker 镜像需要的 3. pollo源码中已经提供了构建 Docker 镜像的 Dockerfile 文件,apollo-configservice\src\main\docker\Dockfile、apollo-adminservice\src\main\docker\Dockfile、apollo-portal\src\main\docker\Dockfile 可以直接使用,最终如下: 4. 分别构建 Docker 镜像,然后可以通过 docker push 推送到自己的 Docker 仓库,比如 我的仓库 ,或者在要部署是机器上生成 Docker 镜像直接使用,最终得到 apollo-configservice、apollo-adminservice、apollo-portal 3个镜像。

编写 docker-compose

apollo-configservice &&apollo-adminservice:

version: '3'

services:

apollo-configservice:

image: apollo-configservice:latest # 镜像地址,这里使用的是直接在当前主机上构建的镜像

ports:

- "8080:8080"

volumes:

# 日志挂载

- /usr/local/apollo/servers/server2/logs/apollo-configservice:/opt/logs

environment:

# 可通过 SERVER_PORT 指定默认启动端口,ports 也需要对应修改

# SERVER_PORT: 8080

# 指定 homePageUrl 为当前宿主的 apollo-configservice 地址,不然会出现无法访问

JAVA_OPTS: "-Deureka.instance.homePageUrl=http://${当前主机IP}:8080"

# 数据库连接地址

DS_URL: "jdbc:mysql://${数据库IP}:${数据库Port}/ApolloConfigDB?characterEncoding=utf8"

# 数据库用户名

DS_USERNAME: "apollo"

# 数据库密码

DS_PASSWORD: "123456"

apollo-adminservice:

image: apollo-adminservice:latest # 镜像地址,这里使用的是直接在当前主机上构建的镜像

ports:

- "8090:8090"

volumes:

# 日志挂载

- /usr/local/apollo/servers/server2/logs/apollo-adminservice:/opt/logs

environment:

# 指定 homePageUrl 为当前宿主的 apollo-adminservice 地址,不然会出现无法访问

JAVA_OPTS: "-Deureka.instance.homePageUrl=http://${当前主机IP}:8090"

# 数据库连接地址

DS_URL: "jdbc:mysql://${数据库IP}:${数据库Port}/ApolloConfigDB?characterEncoding=utf8"

# 数据库用户名

DS_USERNAME: "apollo"

# 数据库密码

DS_PASSWORD: "123456"

depends_on:

- apollo-configservice

apollo-portal:

version: '3'

services:

apollo-portal:

image: apollo-portal:latest # 镜像地址,这里使用的是直接在当前主机上构建的镜像

container_name: apollo-portal

ports:

- "8070:8070"

volumes:

# 日志挂载

- /usr/local/apollo/servers/server1/logs/apollo-portal:/opt/logs

environment:

# 数据库连接地址

DS_URL: "jdbc:mysql://${数据库IP}:${数据库Port}/ApolloPortalDB?characterEncoding=utf8"

# 数据库用户名

DS_USERNAME: "apollo"

# 数据库密码

DS_PASSWORD: "123456"

# META_SERVER 地址,如 http://192.168.100.234:8080,http://192.168.100.234:8081(多个可用,分隔,建议使用 LB 域名),

PRO_META: "http://${实例1的 apollo-configservice 地址},http://${实例2的 apollo-configservice 地址}"

初始数据库数据修改

ApolloPortalDB 库的 ServerConfig 表 apollo.portal.envs 和 configView.memberOnly.envs 值修改为:pro;(因为这里我们搭建的是 PRO 的分布式环境)

ApolloConfigDB 库的 ServerConfig 表 eureka.service.url 值修改为:http://${实例1的 apollo-configservice 地址}/eureka/,http://${实例2的 apollo-configservice 地址}/eureka/;

启动服务

这里将在同一个机器上启动 1 个 apollo-portal 实例(端口 8070),2 个 apollo-configservice(端口 8080、8081)和 2 个 apollo-adminservice(端口 8090、8091)。

注意:启动的过程会比较慢,一般会在 100~200s 左右

通过访问** http://${apollo-portal 服务IP}:8070 **,输入默认用户名密码 apollo/admin 登录:(当前的测试脚本提供一个默认的测试项目,新版本的 sql 脚本可能没有 SampleApp) 通过 管理员工具 =>系统信息 可查看当前环境信息: 可以看出 Config Services 和 Admin Services 都是两个实例,我们可以模拟 kill 其中一台,服务依然是可以正常使用的。

接下来就可以创建应用,添加配置信息,提供给客户端使用,具体客户端如何使用后续将会继续介绍。

docker可以支持把一个宿主机上的目录挂载到镜像里。

docker run -it -v /home/dock/Downloads:/usr/Downloads ubuntu64 /bin/bash

通过-v参数,冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径。

现在镜像内就可以共享宿主机里的文件了。

默认挂载的路径权限为读写。如果指定为只读可以用:ro

docker run -it -v /home/dock/Downloads:/usr/Downloads:ro ubuntu64 /bin/bash

docker还提供了一种高级的用法。叫数据卷。

数据卷:“其实就是一个正常的容器,专门用来提供数据卷供其它容器挂载的”。感觉像是由一个容器定义的一个数据挂载信息。其他的容器启动可以直接挂载数据卷容器中定义的挂载信息。

看示例:

docker run -v /home/dock/Downloads:/usr/Downloads --name dataVol ubuntu64 /bin/bash

创建一个普通的容器。用--name给他指定了一个名(不指定的话会生成一个随机的名子)。

再创建一个新的容器,来使用这个数据卷。

docker run -it --volumes-from dataVol ubuntu64 /bin/bash

--volumes-from用来指定要从哪个数据卷来挂载数据。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6754880.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存