GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
- 准备 docker 环境
-
以下部署脚本保存到
docker-compose.yml
文件中,该文件建议放在专用目录下。
GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
以下部署脚本保存到 docker-compose.yml
文件中,该文件建议放在专用目录下。
BigDecimal有多种构造函数,常用的有2种。建议使用String构造方式,不建议使用double构造方式。
// 强制使用String的构造函数,double也有可能计算不太准确
// 原则是使用BigDecimal并且一定要用String来构造。
public BigDecimal(String val);
public BigDecimal(double val);
方法
add()
加法subtract()
减法multiply()
乘法divide()
除法abs()
绝对值舍入
new BigDecimal("12.34").setScale(0, BigDecimal.ROUND_HALF_UP);
ROUND_UP
始终对非零舍弃部分前面的数字加1ROUND_DOWN
从不对舍弃部分前面的数字加1,即截短ROUND_CEILING
如果 BigDecimal 为正,则舍入行为与 ROUND_UP 相同;如果为负,则舍入行为与 ROUND_DOWN 相同ROUND_FLOOR
如果 BigDecimal 为正,则舍入行为与 ROUND_DOWN 相同;如果为负,则舍入行为与 ROUND_UP 相同ROUND_HALF_UP
四舍五入ROUND_HALF_DOWN
五舍六入ROUND_HALF_EVEN
“银行家舍入法”,主要在美国使用。四舍六入,五分两种情况。如果前一位为奇数,则入位,否则舍去安装方法:
sudo apt-add-repository ppa:wireshark-dev/stable
sudo apt-get update
sudo apt-get install wireshark
安装过程中需要设置,选择“是”。如果错过了或选错了,就安装好之后,运行下面命令行,出现上述页面选择“是”即可。
sudo dpkg-reconfigure wireshark-common
出于安全方面的考虑,普通用户不能够打开网卡设备进行抓包,Wireshark不建议用户通过sudo在root权限下运行,应当设置当前用户权限:
sudo usermod -aG wireshark $(whoami)
注销登录。
$ socat -d -d pty,raw,echo=0 pty,raw,echo=0
2020/05/01 12:08:12 socat[8341] N PTY is /dev/pts/2
2020/05/01 12:08:12 socat[8341] N PTY is /dev/pts/3
2020/05/01 12:08:12 socat[8341] N starting data transfer loop with FDs [5,5] and [7,7]
-d -d 前面两个连续的 -d -d 代表调试信息的输出级别
启一个终端,运行:
echo "test string" > /dev/pts/3
再启一个终端 ,运行:
cat < /dev/pts/2
可以看到向 pts3 发送的数据,由 pts2 接收到了。开发调试的程序连接到 pts2 就可以实现数据接收了。
准备一个 vue 项目:
npm i -g @vue/cli
vue create project
cd project
vue add electron-builder
npm run electron:serve
接下来就可以正常开发了。
EMQX 提供 MQTT 协议服务,使用 docker 可以方便部署:
docker run -d --name emqx -p 18083:18083 -p 31002:1883 emqx/emqx:latest
登录账号:admin
,密码:public
@PostMapping("/getRequestBodyJson")
public void getRequestBodyJson(HttpServletRequest request) throws IOException {
BufferedReader reader = new BufferedReader(
new InputStreamReader(request.getInputStream(), "UTF-8"));
String line;
String result = "";
while ((line = reader.readLine()) != null) {
result += line;
}
System.out.println(result);
}
注意不能使用 @RequestBody
注解,否则会空指针错误。因为 request.getInputStream()
只能被读取一次,然后就会被清空。
SSH 登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。
为了解决这个问题,会话与窗口可以“解绑”:窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话”绑定”其他窗口。Tmux 的作用就是会话与窗口的“解绑”工具,将它们彻底分离。
继续阅读在ECS上利用 docker 部署 jar 包时出现如下错误:
redis.clients.jedis.HostAndPort - cant resolve localhost address
是因为spring-redis在初始化时会实例化LocalHost,但是ECS的host name并没有在设置,解决方案是在 /etc/hosts
中设置ECS的host name。
比如:ssh 登录后,界面显示 user@abcdefg
,则在 /etc/hosts
中添加 127.0.0.1 abcdefg
。
1、准备好 docker 环境。
2、拉取镜像:
docker pull portainer/portainer
3、运行实例:
# 单机(本机)
docker run -d --name portainer -p 9000:9000 -v "/var/run/docker.sock:/var/run/docker.sock" portainer/portainer
# 群集
docker run -d --name portainer -p 9000:9000 portainer/portainer
4、添加 docker registries
名称:microsoft
地址:dockerhub.azk8s.cn