docker安装elasticsearch

1.拉取官方镜像

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.12.1

也可以去docker官方pull

2.创建单点容器:使用低内存运行
创建映射data和yml配置文件

mkdir /data/docker-elasticsearch/config
mkdir /data/docker-elasticsearch/data
chmod -R g+rwx /data/docker-elasticsearch #elasticsearch using uid:gid 1000:0
chgrp -R 0 /data/docker-elasticsearch
$:touch /data/docker-elasticsearch/config/elasticsearch.yml
cluster.name: "docker-cluster"
network.host: 0.0.0.0
xpack.security.enabled: true  #启动了安全插件,如果不想要密码就不需要这项配置

运行容器

docker run -d -p 9200:9200 -p 9300:9300 \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-v /data/docker-elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /data/docker-elasticsearch/data:/usr/share/elasticsearch/data \ 
--name elasticsearch \
docker.elastic.co/elasticsearch/elasticsearch:7.12.1

ES_JAVA_OPTS:设置运行内存,目前默认是4G了。
single-node:单点运行(非集群)

3.配置密码安全
curl localhost:9200 //发现认证错误,因为我们启用了安全

$:docker exec -it elasticsearch bash
cd /usr/share/elasticsearch/bin
elasticsearch-setup-passwords interactive  #开始配置多项密码,用户名默认elastic

微信截图_20210428182116

curl curl -uelastic localhost:9200 #默认用户名elastic

3.添加超级管理员

cd /usr/share/elasticsearch/bin
elasticsearch-users useradd admin -r superuser

curl curl -uadmin localhost:9200 #使用超级管理员登录

4.安装中文分词工具-ik
5.安装kibana
*6.安装logstash


有条件就不要安装ElasticSearch-Head,直接上kibana

不需要全部merge,只合并指定的commit至分支中

cherry-pick功能
1.合并一个commit提交:

git cherry-pick commit-hash

2.合并多个commit提交

git cherry-pick commit-hash1 commit-hash2

3.合并连续的commit提交

//如果要合并的提交比较多,且是连续,操作符:"^..",指定分支:"-m 1"
git cherry-pick -m 1 commit-hash1^..commit-hash9

会把hash1至hash9之前的提交都合并,包括hash1

4.合并多条commit时如果有冲突,会暂停cherry-pick,并要求用户自己选择接下来的操作
注意这里的使用,会一条一条的commit执行合并,也就是会多次执行git add .
指定分支时也麻烦,需要理清数字1,2,3代表哪个分支

--continue

用户解决代码冲突后,第一步将修改的文件重新加入暂存区(git add .),第二步使用下面的命令,让 Cherry pick 过程继续执行。

--abort

发生代码冲突后,放弃合并,回到操作前的样子。

--quit

发生代码冲突后,退出 Cherry pick,但是不回到操作前的样子。

参考:http://www.ruanyifeng.com/blog/2020/04/git-cherry-pick.html

docker安装jenkins

1.拉取镜像
docker pull jenkins/jenkins:lts //最新版

2.创建容器脚本

mkdir -p /data/docker-jenkins/jenkins_home   //创建映射上当

chown -R 1000:1000 /data/docker-jenkins   //修改权限,默认jenkins用户ID为1000

docker run -d -v /data/docker-jenkins/jenkins_home:/data/docker-jenkins --name jenkins jenkins/jenkins:lts
//run参数可选:-p 8080:8080   -p 50000:50000,因为我自己安装的nginx也是容器中,所以不需要转发宿主机端口

3.加入网络

docker network connect --ip=172.10.1.204 prod jenkins

4.添加nginx配置

upstream jenkins_pool{
    server jenkins:8080;
}

//jenkins与nginx在同一网络中,所以直接使用别名转发

5.访问网站
打开网站,需要输入初始化密码:

 cat /data/docker-jenkins/jenkins_home/secrets/initialAdminPassword

6.安装建议插件即可
如果没安装上,没关系,continue即可

7.安装插件
1.如果在初始化的时候未安装上,按提示一步一步安装,可能是依赖的问题,从最底层依赖开始安装
2.安装Echart-API,Pipline

这两篇都挺详细
https://segon.cn/install-jenkins-using-docker.html
https://www.cnblogs.com/stulzq/p/8627360.html

php-fpm的docker镜像有kdevtmpfs挖矿病毒

CPU 使用率基本上每核都达到了 100%,
pstree -a |grep -C 10 kdevtmpfs
查看到在php-fpm容器下
微信图片_20210408142752

查找位置
find / -name kdevtmpfsi
定位容器
`
$ docker ps -q | xargs docker inspect –format ‘{{.State.Pid}}, {{.Id}}, {{.Name}}, {{.GraphDriver.Data.WorkDir}}’ | grep “填写所在的容器id”

`

删除容器,重新构建
1.官方镜像为什么会有挖矿程序
2.是不是因为php代码程序的原因?
3.服务器密码已经被破解?
4.因为映射了9000端口到宿主机且端口开放了外网?


参照
https://fleey.cn/archives/76.html
https://blog.51cto.com/13447608/2472711?source=dra

docker中gitlab配置smtp的qq邮箱

gitlab管理页面,现不提供相关的可视化配置。需要在配置文件中修改

vi config/gitlab.rb

### Email Settings,如果是465端口,ssl的配置一定要配置
gitlab_rails['smtp_enable'] = true # 开启 SMTP 功能
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465 # 端口不可以选择587,测试过会发送邮件失败
gitlab_rails['smtp_user_name'] = "test@qq.com" # 你的邮箱账号
gitlab_rails['smtp_password'] = "1324dasd" # 授权码,不是密码
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'test@qq.com' # 发件人信息,必须跟‘smtp_user_name’保持一致,否则报错
gitlab_rails['smtp_domain'] = "qq.com" # 修改并不影响 

docker exec -it gitlab /bin/bash

2、让配置文件生效
gitlab-ctl reconfigure
##gitlab-ctl restart

3、测试配置邮箱服务是否可以正常发送邮件
gitlab-rails console
irb(main):001:0> 
Notify.test_email('xxx@qq.com', 'Message Subject test', 'Message Body  test').deliver_now

netbeans使用xdebug调试

参考:https://www.cnblogs.com/sochishun/p/7455032.html
1.安装:netbeans,phpstudy_pro

2.修改php.ini:
找到phpstudy目录下php文件下的php.ini,最后加上

[xdebug]
zend_extension = "php_xdebug.dll"
xdebug.auto_trace = on
xdebug.auto_profile = on
xdebug.collect_params = on
xdebug.collect_return = on
xdebug.profiler_enable = on
xdebug.trace_output_dir = "xdebug_log"
xdebug.profiler_output_dir = "xdebug_log"
xdebug.remote_enable = 1
xdebug.remote_mode=req
; 注意,remote_host的值如果填写localhost不能用,则填写127.0.0.1
xdebug.remote_host=127.0.0.1
; 注意,端口和idekey要与netbeans中配置一样
xdebug.remote_port=9001
xdebug.idekey=netbeans-xdebug

phpinfo()打印查找是否有xdebug组件。

3.netbeans设置
1231321d

4.启动调试
1231321d
5.分步调试
1231321d
左侧可以打断点,点击最上面的红色按钮单步调试
鼠标放在参数上会提示类型和值
断点在的话,访问目标页面,会自动命中断点