Hand-code user creation and deletion
This commit is contained in:
+32
-36
@@ -3,8 +3,10 @@ A runner for Gitea based on act.}
|
||||
|
||||
%global dockerd_package dockerd
|
||||
%global rootless rootless
|
||||
%global dockerd_package_rootless dockerd-%{rootless}
|
||||
%global dockerd_package_rootless %{dockerd_package}-%{rootless}
|
||||
%global act_runner_bin act_runner
|
||||
%global runner_user act-runner
|
||||
%global runner_user_rootless %{runner_user}-%{rootless}
|
||||
%global debug_package %{nil}
|
||||
|
||||
%global golicenses LICENSE
|
||||
@@ -13,21 +15,17 @@ A runner for Gitea based on act.}
|
||||
|
||||
Name: gitea-act-runner
|
||||
Version: 0.2.10
|
||||
Release: %autorelease -b 2
|
||||
Release: %autorelease -b 4
|
||||
Summary: A runner for Gitea based on act.
|
||||
|
||||
License: MIT
|
||||
URL: https://gitea.com/gitea/act_runner
|
||||
Source0: https://gitea.com/gitea/act_runner/archive/v%{version}.tar.gz
|
||||
Source1: %{name}.service
|
||||
Source2: %{name}-sysusers.conf
|
||||
Source3: %{name}-tmpfiles.conf
|
||||
Source4: %{name}-%{rootless}.service
|
||||
Source5: %{name}-%{dockerd_package_rootless}.service
|
||||
Source6: %{name}-%{rootless}-sysusers.conf
|
||||
Source7: %{name}-%{rootless}-tmpfiles.conf
|
||||
Source8: README-%{dockerd_package}.md
|
||||
Source9: README-%{rootless}-%{dockerd_package}.md
|
||||
Source2: %{name}-%{rootless}.service
|
||||
Source3: %{name}-%{dockerd_package_rootless}.service
|
||||
Source4: README-%{dockerd_package}.md
|
||||
Source5: README-%{rootless}-%{dockerd_package}.md
|
||||
|
||||
BuildRequires: go >= 1.22
|
||||
BuildRequires: go-rpm-macros
|
||||
@@ -51,13 +49,19 @@ BuildRequires: systemd-rpm-macros
|
||||
Run gitea actions in docker containers
|
||||
|
||||
%pre %{dockerd_package}
|
||||
%sysusers_create_compat %{name} %{SOURCE2}
|
||||
getent group '%{runner_user}' >/dev/null || groupadd -r '%{runner_user}' || :
|
||||
getent passwd '%{runner_user}' >/dev/null || \
|
||||
useradd -r -m -F -g '%{runner_user}' -d '/home/%{runner_user}' -s '/sbin/nologin' -c 'act_runner user' '%{runner_user}' || :
|
||||
|
||||
%post %{dockerd_package}
|
||||
%systemd_post %{name}.service
|
||||
|
||||
%preun %{dockerd_package}
|
||||
%systemd_preun %{name}.service
|
||||
userdel -rZf %{runner_user}
|
||||
|
||||
%postun %{dockerd_package}
|
||||
userdel -rZf %{runner_user}
|
||||
|
||||
|
||||
# act_runner with rootless dockerd package
|
||||
@@ -67,36 +71,35 @@ Summary: Enable running gitea actions in non-root docker containers
|
||||
Requires: %{name} docker-ce slirp4netns fuse-overlayfs iptables docker-ce-rootless-extras shadow-utils
|
||||
Conflicts: %{name}-%{dockerd_package}
|
||||
BuildRequires: systemd-rpm-macros
|
||||
%{?sysusers_requires_compat}
|
||||
|
||||
%description %{dockerd_package_rootless}
|
||||
%{common_description}
|
||||
Run gitea actions in non-root docker containers
|
||||
|
||||
%pre %{dockerd_package_rootless}
|
||||
%sysusers_create_compat %{name} %{SOURCE6}
|
||||
%dnl %tmpfiles_create_package %{name} %{SOURCE4}
|
||||
if [ $1 -eq 1 ]; then
|
||||
getent group '%{runner_user_rootless}' >/dev/null || groupadd -r '%{runner_user_rootless}' || :
|
||||
getent passwd '%{runner_user_rootless}' >/dev/null || \
|
||||
useradd -r -m -F -g '%{runner_user_rootless}' -d '/home/%{runner_user_rootless}' -s '/sbin/nologin' -c 'Rootless act_runner docker user' '%{runner_user_rootless}' || :
|
||||
fi
|
||||
|
||||
%post %{dockerd_package_rootless}
|
||||
%systemd_user_post %{name}.service
|
||||
# if ! grep -q "^$USERNAME_ESCAPED:\|^$(id -u):" /etc/subuid 2> /dev/null; then
|
||||
# # Add subuid entry for ${USERNAME}
|
||||
# echo "${USERNAME}:100000:65536" >> /etc/subuid
|
||||
# fi
|
||||
# if ! grep -q "^$USERNAME_ESCAPED:\|^$(id -u):" /etc/subgid 2> /dev/null; then
|
||||
# # Add subgid entry for ${USERNAME}
|
||||
# echo "${USERNAME}:100000:65536" >> /etc/subgid
|
||||
# fi
|
||||
loginctl enable-linger %{dockerd_package_rootless}
|
||||
%systemd_user_post %{name}.service %{name}-%{dockerd_package_rootless}.service
|
||||
loginctl enable-linger %{runner_user_rootless}
|
||||
echo Please read README.rootless-docker.md to finish the installation
|
||||
|
||||
%preun %{dockerd_package_rootless}
|
||||
loginctl disable-linger %{dockerd_package_rootless}
|
||||
loginctl disable-linger %{runner_user_rootless}
|
||||
%systemd_user_preun %{dockerd_package_rootless}.service %{name}.service
|
||||
|
||||
%postun %{dockerd_package_rootless}
|
||||
if [ $1 -eq 0 ]; then
|
||||
userdel -rZf %{runner_user_rootless}
|
||||
fi
|
||||
|
||||
%prep
|
||||
%setup -q -n act_runner
|
||||
%{__cp} %{SOURCE8} %{SOURCE9} .
|
||||
%{__cp} %{SOURCE4} %{SOURCE5} .
|
||||
|
||||
%build
|
||||
go build %{gobuild_baseflags} -o bin/%{act_runner_bin} %{goipath}
|
||||
@@ -111,15 +114,11 @@ install -m 0755 -vd %{buildroot}%{_docdir}/%{name}
|
||||
install -m 0755 -vp bin/* %{buildroot}%{_bindir}
|
||||
|
||||
# dockerd
|
||||
install -m 0644 -vp %{SOURCE1} %{buildroot}%{_unitdir}
|
||||
install -D -m 0644 %{SOURCE2} %{buildroot}%{_sysusersdir}/%{name}.conf
|
||||
%dnl install -D -m 0644 %{SOURCE3} %{buildroot}%{_tmpfilesdir}/%{name}.conf
|
||||
install -D -m 0644 -vp %{SOURCE1} %{buildroot}%{_unitdir}/%{name}.service
|
||||
|
||||
# Rootless dockerd
|
||||
install -D -m 0644 -vp %{SOURCE4} %{buildroot}%{_userunitdir}/%{name}.conf
|
||||
install -D -m 0644 -vp %{SOURCE5} %{buildroot}%{_userunitdir}/%{name}-%{dockerd_package}.conf
|
||||
install -D -m 0644 %{SOURCE6} %{buildroot}%{_sysusersdir}/%{name}-%{rootless}.conf
|
||||
%dnl install -D -m 0644 %{SOURCE7} %{buildroot}%{_tmpfilesdir}/%{name}.conf
|
||||
install -D -m 0644 -vp %{SOURCE2} %{buildroot}%{_userunitdir}/%{name}.service
|
||||
install -D -m 0644 -vp %{SOURCE3} %{buildroot}%{_userunitdir}/%{name}-%{dockerd_package_rootless}.service
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
@@ -130,14 +129,11 @@ install -D -m 0644 %{SOURCE6} %{buildroot}%{_sysusersdir}/%{name}-%{rootless}.co
|
||||
%license LICENSE
|
||||
%doc README-%{dockerd_package}.md
|
||||
%{_unitdir}/*
|
||||
%{_sysusersdir}/%{name}.conf
|
||||
|
||||
%files %{dockerd_package_rootless}
|
||||
%license LICENSE
|
||||
%doc README-%{rootless}-%{dockerd_package}.md
|
||||
%{_userunitdir}/*
|
||||
%{_sysusersdir}/%{name}-%{rootless}.conf
|
||||
%dnl %{_tmpfilesdir}/%{name}.conf
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
||||
|
||||
Reference in New Issue
Block a user