可以将用到的密码存储在Drone中,这样做能提高安全性,避免密码硬编码在配置文件里。以下是具体步骤:
1. 准备工作
要保证你已经正确安装并配置好了Drone,同时拥有对应的权限去管理机密信息。
2. 存储密码到Drone机密信息
你可以通过Drone的命令行工具或者Web界面把密码存到Drone的机密信息中。
使用命令行工具
首先要安装Drone CLI,接着使用下面的命令来存储密码:
drone secret add --repository <your-repo> --name <secret-name> --value <your-password>
<your-repo>
:是你的仓库名称,格式为owner/repo
。<secret-name>
:为你要存储的机密信息的名称,之后在Drone配置文件里会用到。<your-password>
:就是你实际的密码。
使用Web界面
- 登录到Drone的Web界面。
- 进入对应的仓库设置页面。
- 点击“Secrets”选项卡。
- 点击“Add Secret”按钮,输入机密信息的名称和值,然后点击“Save”。
3. 在Drone配置文件里使用机密信息
在Drone的 .drone.yml
配置文件里使用存储的机密信息。以下是一个使用 docker:dind
镜像的示例:
kind: pipeline
type: docker
name: default
steps:
- name: build-and-push
image: docker:dind
volumes:
- name: dockersock
path: /var/run/docker.sock
environment:
DOCKER_PASSWORD:
from_secret: <secret-name>
commands:
- docker login -u your_username -p $DOCKER_PASSWORD registry.example.com
- docker build -t registry.example.com/your-image:latest .
- docker push registry.example.com/your-image:latest
volumes:
- name: dockersock
host:
path: /var/run/docker.sock
在这个示例中:
from_secret: <secret-name>
把存储在Drone中的机密信息注入到DOCKER_PASSWORD
环境变量里。- 在
commands
部分,运用$DOCKER_PASSWORD
来进行docker login
操作。
通过以上步骤,你就能安全地把密码存储在Drone里,并且在使用 docker:dind
镜像时使用这些密码了。
drone - name: deploy
image: appleboy/drone-ssh
pull: true
settings:
host: 10.129.232.105
port: 22
username: root
password:
from_secret: ssh_password ##这里是密码存储
command_timeout: 2m
script:
- source /etc/profile
#- docker run -e VIRTUAL_HOST=class.wxy.work -e VIRTUAL_PORT=80 -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -d osharp:v7
- cd /data/
- docker-compose up -d
- echo 项目部署成功