2020-08-13 23:38:32 +08:00
|
|
|
|
class Ci::Drone::Server
|
2020-09-18 15:26:14 +08:00
|
|
|
|
attr_reader :user_login, :client_id, :client_secret, :drone_host, :rpc_secret
|
2020-07-10 14:08:16 +08:00
|
|
|
|
|
|
|
|
|
|
# client_id: user's client_id from oauth
|
|
|
|
|
|
# client_secret: user's client_id from oauth
|
|
|
|
|
|
# drone_host: 云服务器地址,eq: 173.53.21.31:80
|
|
|
|
|
|
# eg:
|
2020-09-18 15:26:14 +08:00
|
|
|
|
# DevOps::Drone::Server.new(current_user.login, current_user.oauth.client_id, current_user.oauth.client_secret, 'drone_host').generate_cmd
|
|
|
|
|
|
def initialize(user_login, client_id, client_secret, drone_host, rpc_secret)
|
|
|
|
|
|
@user_login = user_login
|
2020-07-10 14:08:16 +08:00
|
|
|
|
@client_id = client_id
|
|
|
|
|
|
@drone_host = drone_host
|
|
|
|
|
|
@rpc_secret = rpc_secret
|
|
|
|
|
|
@client_secret = client_secret
|
|
|
|
|
|
end
|
|
|
|
|
|
|
2020-07-14 15:06:09 +08:00
|
|
|
|
# TODO 一下代码方便测试,正式环境请移除
|
|
|
|
|
|
# docker rm -f `docker ps -qa`
|
2020-07-10 14:08:16 +08:00
|
|
|
|
def generate_cmd
|
2020-08-26 14:34:32 +08:00
|
|
|
|
"service docker start; docker run \
|
2020-07-10 14:08:16 +08:00
|
|
|
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
2020-08-06 14:26:19 +08:00
|
|
|
|
-e DRONE_DATABASE_DRIVER=mysql \
|
2020-09-22 17:40:01 +08:00
|
|
|
|
-e DRONE_DATABASE_DATASOURCE=#{database_username}:'#{database_password}'@tcp\\(#{database_host}:#{database_port}\\)/#{user_login}_drone?parseTime=true \
|
2020-07-10 14:08:16 +08:00
|
|
|
|
-e DRONE_GITEA_SERVER=#{gitea_url} \
|
|
|
|
|
|
-e DRONE_GITEA_CLIENT_ID=#{client_id} \
|
|
|
|
|
|
-e DRONE_GITEA_CLIENT_SECRET=#{client_secret} \
|
|
|
|
|
|
-e DRONE_RPC_SECRET=#{rpc_secret} \
|
|
|
|
|
|
-e DRONE_SERVER_HOST=#{drone_host} \
|
|
|
|
|
|
-e DRONE_SERVER_PROTO=http \
|
|
|
|
|
|
-p '80:80' \
|
|
|
|
|
|
--restart=always \
|
|
|
|
|
|
--detach=true \
|
|
|
|
|
|
--name=drone-server-#{client_id} \
|
|
|
|
|
|
--net='bridge' \
|
2020-07-14 15:06:09 +08:00
|
|
|
|
drone/drone:1"
|
2020-07-10 14:08:16 +08:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
def gitea_url
|
|
|
|
|
|
Gitea.gitea_config[:domain]
|
|
|
|
|
|
end
|
2020-08-06 14:26:19 +08:00
|
|
|
|
|
|
|
|
|
|
def database_username
|
2020-08-20 18:37:53 +08:00
|
|
|
|
database_config[Rails.env]["ci_server_db"]["username"]
|
2020-08-06 14:26:19 +08:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def database_password
|
2020-08-20 18:37:53 +08:00
|
|
|
|
database_config[Rails.env]["ci_server_db"]["password"]
|
2020-08-06 14:26:19 +08:00
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def database_host
|
2020-08-20 18:37:53 +08:00
|
|
|
|
database_config[Rails.env]["ci_server_db"]["host"]
|
2020-08-06 14:26:19 +08:00
|
|
|
|
end
|
|
|
|
|
|
|
2020-08-17 14:29:09 +08:00
|
|
|
|
def database_port
|
2020-08-20 18:37:53 +08:00
|
|
|
|
database_config[Rails.env]["ci_server_db"]["port"] || 3306
|
2020-08-17 14:29:09 +08:00
|
|
|
|
end
|
|
|
|
|
|
|
2020-08-06 14:26:19 +08:00
|
|
|
|
def database_config
|
|
|
|
|
|
Rails.configuration.database_configuration
|
|
|
|
|
|
end
|
2020-07-10 14:08:16 +08:00
|
|
|
|
end
|