Android下的配置管理之道之Android编译环境搭建
编译环境搭建系统安装启动服务器电源,首先配置好raid,一般推荐:系统分区使用raid1,编译分区使用raid0,数据安全高一点的使用raid1,raid50
专用的编译服务器使用的是dell R430、R630 等。
另外一种是 专用编译+员工编译使用的是dell R730。
两种的区别就是R730配置的硬盘容量比较多,比较大。
dell的一般是ctrl + R 进入raid设置
dell的一般是按F11进入u盘启动
使用ubuntu 14.04.4 版本的 server版本的,没有图形界面的。
添加sudo命令不用输入密码编辑 sudo cat /etc/sudoers文件 在27行加入这一行 buildfarm ALL=(ALL)NOPASSWD:ALL
1buildfarm ALL=(ALL)NOPASSWD:ALL
配置静态IP系统安装完成后就设置静态IP
ubuntu 14.0412345678910111213141516171819$ cat /etc/network/interfaces -n 1 # ...
Docker源码学习之docker-version命令
docker源码学习之 docker version 子命令说明: 使用的代码是 https://github.com/golang108/docker-cli.git (tag: v24.0.6)
1. 添加容器相关的几个子命令其中就有我们这里说到 version 子命令。
容器相关的 子命令 在这里 被加入到 corba 中去
cli/command/commands/commands.go 文件
123456789func AddCommands(cmd *cobra.Command, dockerCli command.Cli) { cmd.AddCommand( system.NewVersionCommand(dockerCli), ...... ...... ...... )}
2. NewVersionCommand() 函数1234func NewVersionCommand(dockerCli command.Cli) *cobra.Command {}
基本上可以发现docker ...
Docker源码学习之docker-run命令
docker源码学习之 docker run 子命令说明: 使用的代码是 https://github.com/golang108/docker-cli.git (tag: v24.0.6)
1. 添加容器相关的几个子命令其中就有我们这里说到 run 子命令。
容器相关的 子命令 在这里 被加入到 corba 中去
cli/command/commands/commands.go 文件
1234567891011func AddCommands(cmd *cobra.Command, dockerCli command.Cli) { cmd.AddCommand( container.NewRunCommand(dockerCli), 这里加入 container 相关的 几个子命令,例如 docker run、docker exec, docker ps 这3个子命令。 container.NewExecCommand(dockerCli), container.NewPsCommand(dockerCli), ...... .. ...
Docker源码学习之如何源码编译docker
How to Compile Docker from Source?Docker的开源部分被改名成了Moby,同时Docker公司还开源了一个LinuxKit的项目,大家可以先去看一下readme。
参考链接
https://github.com/collabnix/dockerlabs/blob/master/beginners/compiling-docker-from-source.md
先确定 操作系统版本,安装的docker的版本Ubuntu 18.04.6 LTSlsb_release -a12345No LSB modules are available.Distributor ID: UbuntuDescription: Ubuntu 18.04.6 LTSRelease: 18.04Codename: bionic
dpkg –listfiles docker-ce containerd.io1234567891011121314151617181920212223242526272829303132333435363738394041 ...
Docker源码学习之docker-names-generator
docker源码学习之容器的随机名称的生成首先是 发送 的 post 请求,被这个函数先处理
postContainersCreate() 函数12345func (s *containerRouter) postContainersCreate(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error { name := r.Form.Get("name")
在这个函数里面 会从请求参数中获取到 name 的值,这里是我们传入 的 my, 也对应上 命令行参数 –name my
s.backend.ContainerCreate() 函数123456789ccr, err := s.backend.ContainerCreate(ctx, types.ContainerCreateConfig{ Name: name, Config: config, HostConfig: ...
Docker源码学习之docker命令行参数解析流程
docker命令行参数解析流程通过 docker -v 查看版本,可以得到 对应 仓库的 revision。然后克隆这个仓库,检出对应的源代码。
12$ docker -v Docker version 24.0.2, build cb74dfc
克隆这个仓库,检出对应的源代码
12345git clone https://github.com/golang108/docker-cli.gitgit checkout cb74dfc # 这个就对应 Docker version 24.0.2, build cb74dfc
1. 入口 main 函数来自文件 cmd/docker/docker.go
123456789101112func main() { // 1. 主要就是 实例化 一个 dockerCli 这个东西, // dockerCli 其实是 type DockerCli struct 这样的一个结构体 dockerCli, err := command.NewDockerCli() // 2. 然后就是 调用 ...
JavaWeb学习总结之Servlet
0.总结java Servlet 是和平台无关的服务器端组件,它运行在servlet容器中(一般是tomcat,当然也有其他的容器),servlet容器负责servelt和客户端的通信以及调用servlet的方法,servlet和客户的通信采用“请求/响应”的模式。
servlet容器创建和销毁servlet,掌控servlet的生命周期。servlet其实就是一个类,一个class而已。有一个比较重要的接口,Servlet
#1.创建一个Servlet接口的实现类实现接口中的所有的方法。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384public class HelloServlet implements Servlet { public HelloServlet() { ...
JavaWeb学习总结之Servlet监听器
##Servlet监听器分类
监听域对象自身的创建和销毁的事件监听器
监听域对象中的属性的增加和删除的事件监听器
监听绑定到httpsession域中的某个对象的状态的事件监听器
##监听域对象自身的创建和销毁
实现对应的接口,web.xml中进行注册
###1.ServletContext ServletContextListener接口ServletContextListener1)监听ServletContext对象被创建或销毁的监听器2)创建一个实现了ServletContextListener接口的类,并且实现其中的2个方法
1234567891011public class HelloServletContextListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent servletContextEvent) { System.out.println(&qu ...
JavaWeb学习总结之JSP
JSP:java server page, java服务器端页面,在html中编写java代码。
#1.为什么会有jspjsp是同servlet编写的一种技术,它将java代码和html代码语句混合在同一个文件中编写只对网页中的要动态产生的内容采用java代码编写,而对固定不变的静态内容采用普通的html代码编写。
#2.jsp的hello程序新建jsp页面,在 <% %> 之间编写java代码即可。
这个jsp文件可以放在web应用的任何目录(除了WEB-INFO目录)
#3.jsp的运行原理
12345678$ ls /tomcat/_day_29/work/Catalina/localhost/hello/org/apache/jsp/ -lh total 32K-rw-rw-r-- 1 mamh mamh 6.1K 8月 1 16:30 hello2_jsp.class-rw-rw-r-- 1 mamh mamh 5.3K 8月 1 16:30 hello2_ ...
JavaWeb学习总结之文件的上传和下载
##文件上传
1.进行文件上传时, 表单需要做的准备:
1). 请求方式为 POST: <form action="uploadServlet" method="post" ... >2). 使用 file 的表单域: <input type="file" name="file"/>3). 使用 multipart/form-data 的请求编码方式: <form action="uploadServlet" method="post" enctype="multipart/form-data">
123456<form action="uploadServlet" method="post" enctype="multipart/form-data"> File: <input type="file&quo ...
Java学习总结-坦克大战
##总结观看马士兵老师讲课的坦克大战 视频的源代码。学编程要亲自敲写代码,不要照抄代码,要跟着思路总结去写代码,就像你定义的类名,变量名等都可以不一样。
123456在这几个方法里面遍历一个集合的时候,遍历的同时还要删除某个元素,这里要特别注意写法,要用迭代器。其他的方法会报错的。 drawExplode(g); drawEnemyTanks(g); drawMissiles(g);
##坦克大战游戏的主类
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291 ...
Java学习总结-反射Reflect
反射(Reflection)是Java 程序开发语言的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性。
Oracle官方对反射的解释是
Reflection enables Java code to discover information about the fields, methods and constructors of loaded classes, and to use reflectedfields, methods, and constructors to operate on their underlying counterparts, within security restrictions.members declared by a given class. It also allows programs to suppress default reflective access control.
反射就是动态的创建对象实例,之前创建对象实例都是在代码中写死的,比如 new Person(),创建一个人的对象实例 ...