Установка выполняется в операционной системе Ubuntu Bionic.
LXC
Создание базового контейнера:
lxc-create -t download -n bionic-base -- --dist ubuntu --release bionic --arch amd64
Создание контейнеров для GitLab и GitLab Runner:
lxc-copy -n bionic-base -N gitlab-bionic -s
lxc-copy -n bionic-base -N gitlab-runner-bionic -s
Файл /var/lib/lxc/gitlab-bionic/config
:
# Distribution configuration lxc.include = /usr/share/lxc/config/common.conf lxc.arch = linux64 lxc.start.auto = 1 # Network configuration lxc.net.0.type = veth lxc.net.0.link = br0 lxc.net.0.flags = up lxc.net.0.ipv4.address = 192.168.0.216/24 lxc.net.0.ipv4.gateway = 192.168.0.1 lxc.net.0.hwaddr = 00:16:3e:00:02:16 # Container specific configuration lxc.rootfs.path = overlay:/var/lib/lxc/bionic-base/rootfs:/var/lib/lxc/gitlab-bionic/delta0 lxc.uts.name = gitlab-bionic lxc.autodev = 1 lxc.pty.max = 16384 lxc.cgroup.devices.allow = c 10:200 rwm lxc.mount.entry = /dev/net dev/net none bind,create=dir
Файл /var/lib/lxc/gitlab-runner-bionic/config
:
# Distribution configuration lxc.include = /usr/share/lxc/config/common.conf lxc.arch = linux64 lxc.start.auto = 1 # Network configuration lxc.net.0.type = veth lxc.net.0.link = br0 lxc.net.0.flags = up lxc.net.0.ipv4.address = 192.168.0.217/24 lxc.net.0.ipv4.gateway = 192.168.0.1 lxc.net.0.hwaddr = 00:16:3e:00:02:17 # Container specific configuration lxc.rootfs.path = overlay:/var/lib/lxc/bionic-base/rootfs:/var/lib/lxc/gitlab-runner-bionic/delta0 lxc.uts.name = gitlab-runner-bionic # Required for Docker lxc.aa_profile = unconfined lxc.cgroup.devices.allow = a lxc.cap.drop = lxc.autodev = 1 lxc.pty.max = 16384 lxc.cgroup.devices.allow = c 10:200 rwm lxc.mount.entry = /dev/net dev/net none bind,create=dir
GitLab
Установить GitLab:
sudo lxc-start -n gitlab-bionic
sudo lxc-attach -n gitlab-bionic
sudo apt install curl
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt install gitlab-ce
Отредактировать файл /etc/locale.gen
и сгенерировать локали для
системы:
sudo locale-gen
Отредактировать файл /etc/gitlab/gitlab.rb
и выполнить:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
GitLab Runner и Docker
Установить GitLab Runner:
sudo lxc-start -n runner-bionic
sudo lxc-attach -n runner-bionic
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
sudo apt install gitlab-runner docker.io
sudo gitlab-runner register
Во время установки ввести токен приведённый на странице admin/runners
,
а в качестве исполнителя задач docker
.
Для работы Docker внутри контейнера нужно удалить AppArmor:
sudo apt purge apparmor
Внутри контейнера для Docker желательно использовать драйвер btrfs
cat
/etc/docker/daemon.json
\{ storage-driver'':
btrfs'' }