We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Развёртывание полноценного CI/CD‑конвейера в Termux с использованием GitLab‑Runner и Docker‑контейнеров

В современном мире разработки программного обеспечения автоматизация процессов сборки, тестирования и развертывания (CI/CD) является критически важной. Хотя традиционно CI/CD системы развёртываются на серверах, возможно создание функционального CI/CD конвейера даже на мобильном устройстве, используя Termux. В этой статье мы рассмотрим, как развернуть CI/CD конвейер в Termux, используя GitLab Runner и Docker контейнеры. Это позволит вам автоматизировать процессы разработки и повысить эффективность вашей работы, даже находясь вне офиса.

Необходимые инструменты

Перед началом убедитесь, что у вас установлены следующие инструменты:

Настройка Termux

1. Обновление Termux:

pkg update && pkg upgrade

2. Установка Docker и Docker Compose:

pkg install docker docker-compose

3. Разрешение доступа к сети (необходимо для работы Docker):

termux-setup-storage

4. Установка необходимых пакетов (для Docker):

pkg install openssh

Создание Dockerfile

Создайте Dockerfile для вашего проекта. Пример Dockerfile для простого Python приложения:

FROM python:3.9-slim-buster
WORKDIR /app
COPY requirements.txt .  # Если у вас есть requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
COPY . .  # Копируем остальной код проекта
CMD ["python", "main.py"]

Убедитесь, что у вас есть файл requirements.txt, если ваше приложение использует какие-либо зависимости.

Настройка GitLab CI/CD

1. Создайте файл .gitlab-ci.yml в корне вашего репозитория GitLab:

stages: 
  - build
  - test
  - deploy

build: 
  stage: build
  image: python:3.9-slim-buster
  script: 
    - pip install --no-cache-dir -r requirements.txt
    - echo "Build successful!"

test: 
  stage: test
  image: python:3.9-slim-buster
  script: 
    - python -m unittest discover

deploy: 
  stage: deploy
  image: alpine/ssh
  before_script: 
    - apk add --no-cache openssh-client
    - mkdir -p ~/.ssh
    - echo "$SSH_PRIVATE_KEY" | tr -d '
' > ~/.ssh/id_rsa
    - chmod 600 ~/.ssh/id_rsa
    - ssh-keyscan your_server_ip >> ~/.ssh/known_hosts
  script: 
    - echo "Deploying to server..."
    - ssh your_user@your_server_ip "python main.py"
  only: 
    - main

Замените your_server_ip, your_user и SSH_PRIVATE_KEY на соответствующие значения для вашего сервера.

Важно: SSH_PRIVATE_KEY - это ваш приватный SSH ключ, который вы должны добавить в настройки проекта GitLab. Он нужен для безопасного подключения к вашему серверу.

Развертывание с использованием GitLab Runner в Termux

1. Получите SSH ключ: Если у вас его еще нет, создайте SSH ключ на вашем компьютере:

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa

2. Добавьте публичный ключ в GitLab: Скопируйте содержимое файла ~/.ssh/id_rsa.pub и добавьте его в настройки SSH ключей в вашем проекте GitLab.

3. Настройте GitLab Runner в Termux: В Termux создайте файл config.toml в директории $HOME/.gitlab/:

[[runners]]
  name="Termux Runner"
  url="https://gitlab.com/"
  token="YOUR_GITLAB_TOKEN"
  executor="docker"
  [runners.docker]
    image="python:3.9-slim-buster"
    privileged="false"

Замените YOUR_GITLAB_TOKEN на ваш токен доступа к GitLab (можно сгенерировать в настройках пользователя GitLab).

4. Запустите GitLab Runner:

gitlab-runner run --config $HOME/.gitlab/config.toml

Тестирование CI/CD конвейера

Закоммитьте ваш Dockerfile и .gitlab-ci.yml в ваш репозиторий GitLab. GitLab Runner автоматически запустит ваш CI/CD конвейер и выполнит сборку, тестирование и развертывание вашего приложения.

Решение проблем

В процессе настройки могут возникнуть различные проблемы. Часто возникают проблемы с сетевым подключением или неверной настройкой SSH ключей. Внимательно проверяйте логи GitLab Runner и Docker для выявления причин ошибок.

Заключение

В этой статье мы продемонстрировали, как развернуть полноценный CI/CD конвейер в Termux с использованием GitLab Runner и Docker контейнеров. Это позволит вам автоматизировать процессы разработки и повысить эффективность вашей работы, даже находясь вне офиса. Развёртывание CI/CD в Termux – отличный способ для разработчиков, которым нужна гибкость и мобильность.

Вам нужна помощь в настройке CI/CD? РыбинскЛАБ предлагает профессиональные услуги по автоматизации разработки, включая развертывание CI/CD конвейеров на различных платформах. Обратитесь к нам, и мы поможем вам оптимизировать процессы разработки и повысить производительность вашей команды! https://rybinsklab.ru/

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен и доработан перед публикацией.

Нужна помощь с настройкой Termux, Linux и серверов?

Я оказываю ИТ-услуги: настройка серверов, автоматизация, безопасность, помощь с Linux и инфраструктурой. Материалы сайта — только в ознакомительных и образовательных целях.

Связаться со мной
Поддержать проект