forked from Trustie/forgeplus
26 lines
757 B
Ruby
26 lines
757 B
Ruby
class Ci::Drone::Client
|
|
attr_reader :client_id, :drone_ip, :rpc_secret
|
|
|
|
# client_id: user's client_id from oauth
|
|
# drone_ip: 云服务器IP地址, eq: 173.65.32.21
|
|
# eq:
|
|
# DevOps::Drone::Client.new(current_user.oauth.client_id, 'drone_ip').generate_cmd
|
|
def initialize(client_id, drone_ip, rpc_secret)
|
|
@client_id = client_id
|
|
@drone_ip = drone_ip
|
|
@rpc_secret = rpc_secret
|
|
end
|
|
|
|
def generate_cmd
|
|
"docker run -d \
|
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
-e DRONE_RPC_HOST=#{drone_ip}:80 \
|
|
-e DRONE_RPC_SECRET=#{rpc_secret} \
|
|
-e DRONE_RUNNER_NAME=#{drone_ip} \
|
|
--restart always \
|
|
--name drone-agent--#{client_id} \
|
|
--net='bridge' \
|
|
drone/drone-runner-docker:1"
|
|
end
|
|
end
|