ESXi – Github Runners via Docker

Context của bài toán này là build 1 con Docker để chạy Github Runners ( scaleble ). Và mọi thứ được chạy trong 1 con VM thuộc về ESXi

  • ESXi build 1 con VMWare chạy Ubuntu Server 20.04 . Cái này dễ dàng không có gì bàn cãi
  • Và tất nhiên sau đó sẽ setup Docker ( không cần chạy without sudo cũng được )

Và ta có 1 file docker-compose sau

version: "3.7"

services:
  runner:
    image: myoung34/github-runner:latest
    restart: always
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      RUNNER_SCOPE: repo
      RUNNER_NAME_PREFIX: runner
      LABELS: ubuntu,x64
      REPO_URL: <repository_url>
      EPHEMERAL: 1
      ACCESS_TOKEN: <github_token>
    deploy:
      replicas: 4
      resources:
        limits: // Giới hạn tối đa
          cpus: '1'
          memory: 2G
        reservations: // Tối thiểu
          cpus: '1'
          memory: 1G

Và giờ chỉ cần chạy docker-compose up -d

Tuy nhiên câu chuyện chưa hết vui !!! Do bản chất ta đang chạy qua Docker. Do đó việc build các service ( cũng qua docker ) lại không khả thi. Cụ thể là ta cần build MySQL / Redis etc … Vậy thì sao ???

…. tách em nó ra 1 VM khác và update lại IP về con VM đó thôi 😀 . Chút mất công nhưng cơ bản đã dễ dàng rất nhiều.

Từ giờ con VM chạy Runners ta tạo n folder, mỗi folder cho 1 docker-compose ứng với 1 repository

Leave a Reply

Your email address will not be published. Required fields are marked *