Compare commits
8 Commits
release-1.
...
master
Author | SHA1 | Date | |
---|---|---|---|
d3b12408a6 | |||
df3d2924d9 | |||
cefcb44095 | |||
9b77b744e0 | |||
e260864a84 | |||
44c51a62e5 | |||
02f3aec625 | |||
7995151a4d |
@ -100,7 +100,7 @@ RUN apk add --no-cache \
|
||||
|
||||
# setup SSH server
|
||||
RUN sed -i /etc/ssh/sshd_config \
|
||||
-e 's/#PermitRootLogin.*/PermitRootLogin no/' \
|
||||
-e 's/#PermitRootLogin.*/PermitRootLogin yes/' \
|
||||
-e 's/#PasswordAuthentication.*/PasswordAuthentication no/' \
|
||||
-e 's/#SyslogFacility.*/SyslogFacility AUTH/' \
|
||||
-e 's/#LogLevel.*/LogLevel INFO/' \
|
||||
@ -121,6 +121,7 @@ WORKDIR "${JENKINS_AGENT_HOME}"
|
||||
# The file path has been created earlier in the file by `mkdir -p` and we also have configured sshd so that it will
|
||||
# allow environment variables to be sourced (see `sed` command related to `PermitUserEnvironment`)
|
||||
RUN echo "PATH=${PATH}" >> ${JENKINS_AGENT_HOME}/.ssh/environment
|
||||
RUN mkdir -p /root/.ssh/ && echo "PATH=${PATH}" >> /root/.ssh/environment
|
||||
COPY setup-sshd /usr/local/bin/setup-sshd
|
||||
RUN chmod a+x /usr/local/bin/setup-sshd
|
||||
|
||||
|
3
Jenkinsfile
vendored
3
Jenkinsfile
vendored
@ -37,8 +37,9 @@ pipeline {
|
||||
tag "${env.RELEASE_TAG_PREFIX}*"
|
||||
}
|
||||
steps {
|
||||
sh "id"
|
||||
sh "whoami"
|
||||
sh 'Home: $HOME'
|
||||
sh 'echo Home: $HOME'
|
||||
sh 'awk -F: -v user=$(whoami) \'$1 == user { print $6 }\' /etc/passwd'
|
||||
sh "docker login ${env.REGISTRY_HOST} -u ${env.GITEA_USER} -p ${env.GITEA_OAUTH_TOKEN}"
|
||||
sh "docker image push ${resolveImageName(env)}"
|
||||
|
10
README.md
10
README.md
@ -20,7 +20,7 @@ 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), без него придется делать контейнер с агентом привилегированным.
|
||||
@ -30,7 +30,7 @@ dockerd-entrypoint.sh &
|
||||
version: '3.7'
|
||||
services:
|
||||
jenkins-agent:
|
||||
image: git.tswf.io/docker-base-images/jenkins-ssh-agent-jdk17-dind:1.0.4
|
||||
image: git.tswf.io/docker-base-images/jenkins-ssh-agent-jdk17-dind:1.0.7
|
||||
restart: always
|
||||
# Используем, если не хотим делать контейнер привилегированным
|
||||
runtime: sysbox-runc
|
||||
@ -53,3 +53,9 @@ docker compose up -d
|
||||
## Настройки Jenkins
|
||||
|
||||
Смотри [описание агента](AGENT.README.md)
|
||||
|
||||
# Использование от ROOT
|
||||
|
||||
Образ пропатчен для возможности запуска агента от имени ROOT. Решает сложности с запуском одноразовых docker-агентов на нашей ноде.
|
||||
|
||||
Просто в credentials при указании логина пишем `root`. Публичный ключ прописывается и на `jenkins`, и на него.
|
@ -1,4 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
echo "STARTING DOCKER DAEMON AS $(id -u)"
|
||||
dockerd-entrypoint.sh &
|
||||
|
||||
set -ex
|
||||
@ -42,6 +43,11 @@ write_key() {
|
||||
echo "$1" > "${JENKINS_AGENT_HOME}/.ssh/authorized_keys"
|
||||
chown -Rf "${ID_GROUP}" "${JENKINS_AGENT_HOME}/.ssh"
|
||||
chmod 0700 -R "${JENKINS_AGENT_HOME}/.ssh"
|
||||
|
||||
mkdir -p "/root/.ssh"
|
||||
echo "$1" > "/root/.ssh/authorized_keys"
|
||||
chown -Rf root /root/.ssh
|
||||
chmod 0700 -R /root/.ssh
|
||||
}
|
||||
|
||||
if [[ ${JENKINS_AGENT_SSH_PUBKEY} == ssh-* ]]; then
|
||||
|
Loading…
Reference in New Issue
Block a user