天天看点

docker mysql 无权限_docker + Jenkins + gogs 自动化部署安装 docker安装 docker-composer安装 htop、nginx、unzip、git安装portainer,用于在线客户化管理docker使用docker运行redis使用docker运行mysql生成ssh密钥,免密拉取代码使用docker安装Jenkins

安装 docker

# 下载自动安装脚本curl -fsSL get.docker.com -o get-docker.sh# 执行脚本,并指定为阿里的镜像sh get-docker.sh --mirror Aliyun# 启动dockersystemctl start docker# 设置仓库镜像地址,可以加速下载镜像vi /etc/docker/daemon.json# 写入内容{    "registry-mirrors": [        "https://3laho3y3.mirror.aliyuncs.com"    ]}# 重启dockersystemctl daemon-reloadsystemctl restart docker# 设置开机启动systemctl enable docker
           

centos8 系统安装的时候可能会报错:

Error:  Problem: package docker-ce-3:19.03.13-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed  - cannot install the best candidate for the job  - package containerd.io-1.2.10-3.2.el7.x86_64 is filtered out by modular filtering  - package containerd.io-1.2.13-3.1.el7.x86_64 is filtered out by modular filtering  - package containerd.io-1.2.13-3.2.el7.x86_64 is filtered out by modular filtering  - package containerd.io-1.2.2-3.3.el7.x86_64 is filtered out by modular filtering  - package containerd.io-1.2.2-3.el7.x86_64 is filtered out by modular filtering  - package containerd.io-1.2.4-3.1.el7.x86_64 is filtered out by modular filtering  - package containerd.io-1.2.5-3.1.el7.x86_64 is filtered out by modular filtering  - package containerd.io-1.2.6-3.3.el7.x86_64 is filtered out by modular filtering  - package containerd.io-1.3.7-3.1.el7.x86_64 is filtered out by modular filtering
           

centos8默认使用podman代替docker,所以需要containerd.io,那我们就安装一下就好了。

yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge/Packages/containerd.io-1.3.7-3.1.el7.x86_64.rpm
           

安装 docker-composer

# 下载curl -L https://github.com/docker/compose/releases/download/1.27.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose# 添加执行权限chmod +x /usr/local/bin/docker-compose
           

安装 htop、nginx、unzip、git

yum install -y htop nginx unzip git
           

安装portainer,用于在线客户化管理docker

# 创建数据卷docker volume create portainer_data# 启动portainer容器docker run -d -p 9999:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --name=portainer --restart=always portainer/portainer-ce# 新建 /etc/nginx/conf.d/portainer.conf,写入server {  listen  80;  server_name testportainer.xxx.com;  location / {    proxy_pass   http://127.0.0.1:9999;    proxy_set_header    X-Real-IP        $remote_addr;    proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;    proxy_set_header    HTTP_X_FORWARDED_FOR $remote_addr;    proxy_set_header    X-Forwarded-Proto $scheme;    proxy_redirect      default;  }  location /api/websocket/ {    proxy_pass http://127.0.0.1:9999/api/websocket/;    proxy_set_header Upgrade $http_upgrade;    proxy_set_header Connection "upgrade";    proxy_http_version 1.1;  }}
           

打开浏览器,进入127.0.0.1:9999 或者 testportainer.xxx.com 就可以进入portainer的管理界面了

使用docker运行redis

# 新建 /root/docker/redis/docker-compose.ymlversion: "3"services:   redis:    image: redis:5    container_name: my_redis    command: redis-server /usr/local/etc/redis/redis.conf    restart: always    ports:      - "6379:6379"    volumes:      - ./data:/data:cached      - ./redis.conf:/usr/local/etc/redis/redis.conf:cached    logging:       driver: "json-file"      options:         max-size: "500m"  # 运行docker-compose up -d --build
           

使用docker运行mysql

# 新建 /root/docker/mysql/docker-compose.ymlversion: "3"services:   mysql:    image: mysql:8    container_name: mysql    command: mysqld --default-authentication-plugin=mysql_native_password    restart: always    ports:      - "3306:3306"    environment:      - MYSQL_ROOT_PASSWORD=mysql888    volumes:      - ./data:/var/lib/mysql:cached      - ./conf:/etc/mysql/conf.d:cached    security_opt:      - seccomp:unconfined    logging:       driver: "json-file"      options:         max-size: "500m"      # 运行docker-compose up -d --build# 设置允许远程访问use mysql;update user set host='%' where user ='root';FLUSH PRIVILEGES;GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
           

生成ssh密钥,免密拉取代码

# 生成密钥ssh-keygen -t rsa -C "[email protected]"# 将id_rsa.pub内容添加到代码服务器cd ~/.ssh/cat id_rsa.pub
           

使用docker安装Jenkins

# 新建 /root/docker/jenkins/docker-compose.ymlversion: "3"services:   jenkins:    image: jenkinsci/blueocean    container_name: jenkins    restart: always    ports:      - "49999:8080"      - "50000:50000"    environment:      JAVA_OPTS: "-Duser.timezone=Asia/Shanghai"    volumes:      - ./data:/var/jenkins_home:cached    logging:       driver: "json-file"      options:         max-size: "500m"# 运行docker-compose up -d --build# 解决权限错误问题chown -R 1000:1000 data
           

权限问题解决之后,Jenkins会自动运行,并打印出一串随机密码

docker mysql 无权限_docker + Jenkins + gogs 自动化部署安装 docker安装 docker-composer安装 htop、nginx、unzip、git安装portainer,用于在线客户化管理docker使用docker运行redis使用docker运行mysql生成ssh密钥,免密拉取代码使用docker安装Jenkins

密码

打开浏览器进入127.0.0.1:49999, 输入日志中的密码完成账号初始化

docker mysql 无权限_docker + Jenkins + gogs 自动化部署安装 docker安装 docker-composer安装 htop、nginx、unzip、git安装portainer,用于在线客户化管理docker使用docker运行redis使用docker运行mysql生成ssh密钥,免密拉取代码使用docker安装Jenkins

初始化账号

选择要安装的插件

docker mysql 无权限_docker + Jenkins + gogs 自动化部署安装 docker安装 docker-composer安装 htop、nginx、unzip、git安装portainer,用于在线客户化管理docker使用docker运行redis使用docker运行mysql生成ssh密钥,免密拉取代码使用docker安装Jenkins

选择要安装的插件

安装插件

docker mysql 无权限_docker + Jenkins + gogs 自动化部署安装 docker安装 docker-composer安装 htop、nginx、unzip、git安装portainer,用于在线客户化管理docker使用docker运行redis使用docker运行mysql生成ssh密钥,免密拉取代码使用docker安装Jenkins

进入插件管理

安装publish over ssh插件

docker mysql 无权限_docker + Jenkins + gogs 自动化部署安装 docker安装 docker-composer安装 htop、nginx、unzip、git安装portainer,用于在线客户化管理docker使用docker运行redis使用docker运行mysql生成ssh密钥,免密拉取代码使用docker安装Jenkins

安装publish over ssh插件

配置publish over ssh插件

docker mysql 无权限_docker + Jenkins + gogs 自动化部署安装 docker安装 docker-composer安装 htop、nginx、unzip、git安装portainer,用于在线客户化管理docker使用docker运行redis使用docker运行mysql生成ssh密钥,免密拉取代码使用docker安装Jenkins

配置publish over ssh插件

拉到最下面,新增服务器

docker mysql 无权限_docker + Jenkins + gogs 自动化部署安装 docker安装 docker-composer安装 htop、nginx、unzip、git安装portainer,用于在线客户化管理docker使用docker运行redis使用docker运行mysql生成ssh密钥,免密拉取代码使用docker安装Jenkins

新增服务器

配置 gogs webhook

  1. 过滤分支,只处理dev分支,
  2. 设置参数构建,区分测试和正式,这个参数后面的publish over ssh 插件要用

设置构建后操作

docker mysql 无权限_docker + Jenkins + gogs 自动化部署安装 docker安装 docker-composer安装 htop、nginx、unzip、git安装portainer,用于在线客户化管理docker使用docker运行redis使用docker运行mysql生成ssh密钥,免密拉取代码使用docker安装Jenkins

点击高级按钮,设置把branch参数传入

docker mysql 无权限_docker + Jenkins + gogs 自动化部署安装 docker安装 docker-composer安装 htop、nginx、unzip、git安装portainer,用于在线客户化管理docker使用docker运行redis使用docker运行mysql生成ssh密钥,免密拉取代码使用docker安装Jenkins

同样在ssh server选项中也点击高级,并设置label为test,表示如果构建的时候选择test,则会进入当前这个server,这样就可以针对不同的构建参数选择不同的主机进行相关操作。需要注意Exec command 的命令是到远程服务器上执行的,而不是Jenkins所在的机器。

docker mysql 无权限_docker + Jenkins + gogs 自动化部署安装 docker安装 docker-composer安装 htop、nginx、unzip、git安装portainer,用于在线客户化管理docker使用docker运行redis使用docker运行mysql生成ssh密钥,免密拉取代码使用docker安装Jenkins

配置完毕,开始构建测试吧

docker mysql 无权限_docker + Jenkins + gogs 自动化部署安装 docker安装 docker-composer安装 htop、nginx、unzip、git安装portainer,用于在线客户化管理docker使用docker运行redis使用docker运行mysql生成ssh密钥,免密拉取代码使用docker安装Jenkins

可以看到默认是构建test,这个参数就是我们刚刚配置的。

设置钩子,提交代码之后触发自动更新

docker mysql 无权限_docker + Jenkins + gogs 自动化部署安装 docker安装 docker-composer安装 htop、nginx、unzip、git安装portainer,用于在线客户化管理docker使用docker运行redis使用docker运行mysql生成ssh密钥,免密拉取代码使用docker安装Jenkins

image.png

docker mysql 无权限_docker + Jenkins + gogs 自动化部署安装 docker安装 docker-composer安装 htop、nginx、unzip、git安装portainer,用于在线客户化管理docker使用docker运行redis使用docker运行mysql生成ssh密钥,免密拉取代码使用docker安装Jenkins

文章来源:https://www.jianshu.com/p/e575c25fe15e

继续阅读