jenkins-ssh-agent-jdk17-dind/README.md
amorozov d3b12408a6
All checks were successful
GIT.TSWF.IO/docker-base-images/jenkins-ssh-agent-jdk17-dind/pipeline/head This commit looks good
Gitea/docker-base-images/jenkins-ssh-agent-jdk17-dind/pipeline/head This commit looks good
updated README.md
2025-03-03 04:34:55 +03:00

61 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Склейка DinD и Jenkins SSH Agent.
- Берем [Jenkins SSH Agent](https://github.com/jenkinsci/docker-ssh-agent), а именно [Alpine Dockerfile](https://github.com/jenkinsci/docker-ssh-agent/blob/master/alpine/Dockerfile)
- Изменяем базовый образ на `docker:dind` (по-умолчанию он на базе alpine)
- Добавляем в `Dockerfile` под создание пользователя `jenkins` строки:
```Dockerfile
RUN addgroup docker || true && \
addgroup ${user} docker
```
- В `setup-sshd` вписываем строки:
```shell
# dockerd's patch
dockerd-entrypoint.sh &
```
- Собираем, тэгаем и пушим
# Как использовать:
## Запуск агента
Генерируем новую пару SSH ключей.
```shell
ssh-keygen -t rsa -b 4096 -f .ssh/jenkins-ssh-agent -C "jenkins-ssh-agent"
```
Желательно установить [SysBox](https://github.com/nestybox/sysbox/releases/tag/v0.6.6), без него придется делать контейнер с агентом привилегированным.
Берем `docker-compose.yml` файл:
```yaml
version: '3.7'
services:
jenkins-agent:
image: git.tswf.io/docker-base-images/jenkins-ssh-agent-jdk17-dind:1.0.7
restart: always
# Используем, если не хотим делать контейнер привилегированным
runtime: sysbox-runc
# Если не используем SysBox, а зря :c
#privileged: true
ports:
- "31674:22"
environment:
JENKINS_AGENT_SSH_PUBKEY: "<YOR_SSH_PUBLIC_KEY_HERE>"
```
и заменяем `<YOR_SSH_PUBLIC_KEY_HERE>` на сгенеренный публичный ключ
Запускаем агента:
```shell
docker compose up -d
```
## Настройки Jenkins
Смотри [описание агента](AGENT.README.md)
# Использование от ROOT
Образ пропатчен для возможности запуска агента от имени ROOT. Решает сложности с запуском одноразовых docker-агентов на нашей ноде.
Просто в credentials при указании логина пишем `root`. Публичный ключ прописывается и на `jenkins`, и на него.