chawki505 / demo-docker

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Préparation de l'hôte sous debian

Installation des dependances

Docker

Configurer le repository

$ sudo apt-get update

$ sudo apt-get install \
 apt-transport-https \
 ca-certificates \
 curl \
 gnupg-agent \
 software-properties-common

$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

$ sudo add-apt-repository \
  "deb [arch=amd64] https://download.docker.com/linux/debian \
  $(lsb_release -cs) \
  stable"

Installer docker engine

$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
$ sudo docker --version
Docker version 20.10.2, build 2291f61

Configurer Docker en non-root user

$ sudo groupadd docker
$ sudo usermod -aG docker $USER
$ newgrp docker
$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
$ sudo chmod g+rwx "$HOME/.docker" -R
$ docker --version
Docker version 20.10.2, build 2291f61

Docker-Compose

Installer Docker-Compose

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

$ sudo chmod +x /usr/local/bin/docker-compose

$ docker-compose --version
docker-compose version 1.28.2, build 67630359

BtrFS

Installer btrfs-tools

$ sudo apt install btrfs-tools
$ btrfs --version
btrfs-progs v4.20.1

Formatage

$ file /dev/disk/by-id/*
liste des volumes disponible
$ sudo mkfs.btrfs -f /dev/disk/by-id/VOTRE_VOLUME_SECONDAIRE

Montage temporaire du volume

$ sudo mkdir /mnt/btrfs
$ sudo mount -o defaults,discard /dev/disk/by-id/VOTRE_VOLUME_SECONDAIRE /mnt/btrfs/
$ sudo chown -R $(whoami): /mnt/btrfs

Test avec un fichier

$ df -h -x tmpfs -x devtmpfs
$ echo "success"  | sudo tee /mnt/btrfs/test
$ cat /mnt/btrfs/test
$ rm -f /mnt/btrfs/test

Clonage des projets

$ git clone https://github.com/chawki505/demo-docker
$ git clone https://github.com/chawki505/demo-docker-app

Construire les images Jenkins avec support BtrFS

$ cd demo-docker
$ groupadd -g 1000 jenkins
$ useradd -g jenkins jenkins
$ docker build --build-arg GID=1000 -t treeptik/jenkins jenkins

Lancement des applications docker

$ ./startup.sh

Configuration GitLab & Jenkins

Il faut créer un projet dans le GitLab docker qui sera issue du projet GitHub public. Egalement créer un job multibuild pipeline basé sur le projet github.

Préparer les données

Création des données de référence

$ mkdir /mnt/btrfs/pg-data-ref

Lancer le container pour provisionner les données

$ docker run --name postgres-srv \
	 -e POSTGRES_PASSWORD=mysecretpassword \
	 -v /mnt/btrfs/pg-data:/var/lib/postgresql/data \
	 -v `pwd`/scripts/users.sql:/opt/scripts/users.sql \
	 -d postgres

$ docker exec -it postgres-srv bash

container> psql -U postgres
 postgres> \timing
 postgres> \i /opt/scripts/users.sql

Création du volume BtrFS

$ btrfs subvolume create /mnt/btrfs/pg-data-ref
$ sudo chown -R jenkins:jenkins /mnt/btrfs/pg-data-ref/

source : https://github.com/Treeptik/devoxx2018

About


Languages

Language:Dockerfile 56.3%Language:Shell 29.8%Language:Ruby 14.0%