Telepítés

Hozzunk létre egy mappát az alkalmazásnak, majd benne egy yaml fájl a következő képpen

mkdir Gitlab-runner
cd Gitlab-runner

nano docker-compose.yml
services:
  gitlab-runner:
    image: gitlab/gitlab-runner:latest
    container_name: gitlab-runner
    restart: always
    volumes:
      - /mnt/Storage/Apps/Data/gitlab-runner/config:/etc/gitlab-runner
      - /var/run/docker.sock:/var/run/docker.sock
docker compose up -d

Beállítás

Regisztráljuk a runnert a gitlabhoz, ehhez a Gitlab -> Admin -> CI/CD -> Runners oldalon hozzunk létre egy új runnert, kapunk egy regisztrációs kódot.

docker exec -it gitlab-runner gitlab-runner register

URL: https://gitlab.sajatdomain.hu
Név: Runner-Budapest
Tags: Szerver
Executor: docker
Default image: docker:29

Ha sikerült hozzáadni, azt látnod kell a Gitlabon a runnerek között kis zöld flaggel.

Haladó

Abban az esetben ha Hostról futtatott docker containerben futattott runnerből később a CI -ben szeretnénk docker containert létrehozni host daemonnal, azt be kell mountolnunk a runner imagebe. Bemountolhatunk egyébb volumokat is amelyekből pl később a CI -ban másolnunk kell pl: .env környezeti változókat.

Docker volume: "/var/run/docker.sock"

Legyenek mondjuk az Appok az alábbi mappában: "/mnt/DataStorage/Apps"

nano /mnt/Storage/Apps/Data/gitlab-runner/config/config.toml

volumes = ["/var/run/docker.sock:/var/run/docker.sock",
                "/mnt/Storage/Apps:/mnt/Storage/Apps",
                "/cache"]

Persze ne felejtsük el ezt a Gitlab-Runner-be is bemountolni, különben nem fgja tudni majd a CI -be behúzni.

nano /mnt/Storage/Apps/Gitlab-Runner/docker-compose.yml

version: "3"
services:
  gitlab-runner:
    image: gitlab/gitlab-runner:latest
    container_name: gitlab-runner
    restart: always
    volumes:
      - /mnt/Storage/Apps/Data/gitlab-runner/config:/etc/gitlab-runner
      - /mnt/Storage/Apps:/mnt/Storage/Apps
      - /var/run/docker.sock:/var/run/docker.sock

Végül indítsuk újra a Gitlab-Runner containert

cd /mnt/Storage/Apps/Gitlab-Runner
docker compose down
docker compose up -d

Hozzunk létre az Alkalmazásunk mappájában egy .gitlab-ci.yml fájlt az alábbi tartalommal, majd pusholjuk föl a master branchre és voálá!

stages:
  - deploy

deploy_szerver:
  stage: deploy
  tags:
    - Szerver
  only:
    - master

  before_script:
    - apk add --no-cache openssh-client git bash docker-cli docker-cli-compose

  script:
    - cp /mnt/Storage/Apps/Appnév/.env "${CI_PROJECT_DIR}/.env"
    - ./app.sh buildandrun

← Vissza: Linux