1.安装docker
1.安装Docker
更新apt
sudo apt-get update
安装基本软件
sudo apt-get install curl wget apt-transport-https ca-certificates software-properties-common
添加docker密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
对比:
sudo apt-key fingerprint 0EBFCD88
添加源
sudo add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
安装
sudo apt-get update
sudo apt-get install docker-ce
查看docker状态:
systemctl status docker
添加阿里镜像
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://bhfjayzb.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
2.安装docker-compose
apt-get install -y docker-compose
3.安装gitea
3.1创建docker-compose.yml文件
version: "3"
networks:
gitea:
external: false
services:
server:
image: gitea/gitea:1.16.7
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
restart: always
networks:
- gitea
volumes:
- /home/data:/data # /home/data可以替换成你想要的挂载目录
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3030:3000" # 3030可以替换成你想要的端口
- "322:22" # 322可以替换成22
3.2 运行
docker-compose up -d
配置gitea
访问:http://server-ip:3030
设置管理员账号密码
点击安装后,系统安装完毕会自动登录
创建测试仓库
创建组织
创建仓库
Drone安装
此处同样采用docker-compose-drone.yml的方式安装
version: '3' # 使用 Docker Compose 文件版本 3
services:
drone-server: # 定义名为 drone-server 的服务
restart: always # 总是在容器退出时重新启动
image: drone/drone:2 # 使用 drone/drone:2 镜像作为服务的基础镜像
ports:
- "80:80" # 将容器的 80 端口映射到宿主机的 80 端口
volumes:
- /home/lan/drone/:/var/lib/drone/ # 将宿主机的 /home/lan/drone/ 目录挂载到容器的 /var/lib/drone/ 目录
- /home/lan/data/:/data/ # 将宿主机的 /home/lan/data/ 目录挂载到容器的 /data/ 目录
environment: # 设置容器的环境变量
- DRONE_GITEA_SERVER=http://10.7.127.154:3030/ # 指定 Gitea 服务器地址
- DRONE_GITEA_CLIENT_ID=d4ff689a-5998-4a15-8f79-0fa9e1f4ac92 # 指定 Gitea OAuth2 客户端 ID
- DRONE_GITEA_CLIENT_SECRET=6s029hMCcm89W0GoavurDKzy63ryNRl0uAQNcYqTRC58 # 指定 Gitea OAuth2 客户端密钥
- DRONE_SERVER_HOST=10.7.127.154:80 # 指定 Drone 服务器的主机名或 IP 地址
- DRONE_SERVER_PROTO=http # 指定 Drone 服务器使用的协议
- DRONE_RPC_SECRET=lan # 指定 Drone 与 runner 通信的密钥
- DRONE_GIT_ALWAYS_AUTH=true # 指定 Git 仓库是否总是需要认证
- DRONE_GIT_USERNAME=cicd # 指定用于与 Git 仓库通信的用户名
- DRONE_GIT_PASSWORD=6657b740bb03f24ee7908586854d7e1d26890495a # 指定用于与 Git 仓库通信的密码
- DRONE_USER_CREATE=username:root,admin:true # 开启管理员账户
drone-runner-docker: # 定义名为 drone-runner-docker 的服务
restart: always # 总是在容器退出时重新启动
image: drone/drone-runner-docker:1 # 使用 drone/drone-runner-docker:1 镜像作为服务的基础镜像
ports:
- "3000:3000" # 将容器的 3000 端口映射到宿主机的 3000 端口
volumes:
- /var/run/docker.sock:/var/run/docker.sock # 将宿主机的 Docker socket 挂载到容器内
environment: # 设置容器的环境变量
- DRONE_RPC_PROTO=http # 指定 Drone 与 runner 通信使用的协议
- DRONE_RPC_HOST=10.7.127.154:80 # 指定 Drone 服务器的主机名或 IP 地址
- DRONE_RPC_SECRET=lan # 指定 Drone 与 runner 通信的密钥
- DRONE_RUNNER_NAME=drone-runner-docker # 指定 Drone runner 的名称
- DRONE_RUNNER_CAPACITY=2 # 指定 Drone runner 的并发处理能力
运行
docker-compose -f docker-compose-drone.yml
访问:http://drone-server-domain
创建alibaba 仓库
进入 容器镜像服务
https://cr.console.aliyun.com/cn-chengdu/instance/credentials
根据sudo docker login --username=aliyun3014818226 registry.cn-chengdu.aliyuncs.com创建 drone secret
每个字段都是就是name,value就是阿里仓库对应的用户名 密码 命名空间
而registry对应的value就是方框对应的registry
最后根据脚本上传代码实现cicd