Installation De Drone.io avec docker sur debian
Installation de docker
En root,
apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg > docker.key
apt-key add docker.key
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
apt update
apt install docker-ce docker-ce-cli containerd.io
Installation
drone.io
docker pull drone/drone:1
#!/bin/bash
DRONE_GITEA_SERVER=https://nom.de.domaine.de.gitea
DRONE_SERVER_HOST=nom.de.domaine.de.drone
DRONE_SERVER_PROTO=https
DRONE_GIT_ALWAYS_AUTH=false
DRONE_DATA_VOLUME=/var/lib/drone
DRONE_ADMIN_USER=user.gitea.qui.sera.admin.drone
DRONE_GITEA_CLIENT_ID=<id_client>
# lancer la commande : openssl rand -hex 16 et remplacer <RPC-SECRET>
DRONE_RPC_SECRET=<RPC-SECRET>
DRONE_GITEA_CLIENT_SECRET=<secret>
docker run \
--volume=/var/lib/drone:/data \
--env=DRONE_AGENTS_ENABLED=true \
--env=DRONE_GITEA_SERVER=${DRONE_GITEA_SERVER} \
--env=DRONE_GITEA_CLIENT_ID=${DRONE_GITEA_CLIENT_ID} \
--env=DRONE_GITEA_CLIENT_SECRET=${DRONE_GITEA_CLIENT_SECRET} \
--env=DRONE_RPC_SECRET=${DRONE_RPC_SECRET} \
--env=DRONE_SERVER_HOST=${DRONE_SERVER_HOST} \
--env=DRONE_SERVER_PROTO=${DRONE_SERVER_PROTO} \
--publish=80:80 \
--publish=443:443 \
--restart=always \
--detach=true \
--name=drone \
drone/drone:1
<id_client>
et <secret>
sont issue de gitea dans la configuration de
l’utilisateur, onglet application, partie oauth.
On crée une application qui pointe vers https://nom.de.domaine.de.drone/login
ce qui donnera les informations nécessaire.
On va se logger sur https://nom.de.domaine.de.drone
ce qui nous renvoie sur le
gitea qui demande une validation de lapplication.
On retourne sur drone, ce qui va nous donner un affichage avec tout les dépôts du lab…
La base de donnée sera disponible dans /var/lib/drone
drone-agent
drone-agent est un runner pour drone.io. C’est lui qui va executerles action
décrite dans le fichier .drone
du dépôt.
On télécharge l’agent:
docker pull drone/agent:1
Ensuite on lance le container :
#!/bin/bash
DRONE_RPC_PROTO=<DRONE_SERVER_PROTO>
DRONE_RPC_HOST=<DRONE_SERVER_HOST>
DRONE_RPC_SECRET=<la clef généré pour drone.io>
DRONE_RUNNER_NAME=${HOSTNAME} # ou autre chose =)
docker run -d \
-v /var/run/docker.sock:/var/run/docker.sock \
-e DRONE_RPC_PROTO=${DRONE_RPC_PROTO} \
-e DRONE_RPC_HOST=${DRONE_RPC_HOST} \
-e DRONE_RPC_SECRET=${DRONE_RPC_SECRET} \
-e DRONE_RUNNER_CAPACITY=2 \
-e DRONE_RUNNER_NAME=${DRONE_RUNNER_NAME} \
-p 3000:3000 \
--restart always \
--name runner \
drone/agent:1
drone-cli
apt install wget
wget https://github.com/drone/drone-cli/releases/download/v1.0.7/drone_linux_amd64.tar.gz
tar -zxvf drone_linux_amd64.tar.gz
sudo install -t /usr/local/bin drone
On insert dans ~/.bashrc
les informations issues de la page de paramètre du
compte dans drone.
export DRONE_SERVER=https://nom.de.domaine.de.drone
export DRONE_TOKEN=msodihEVsohdFs231fSdfT13s51f03s
et on lance
drone info