forked from univention/ucs-appliance-container
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathunivention-container-mode-environment.service
65 lines (58 loc) · 2.25 KB
/
univention-container-mode-environment.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#
# Univention Container Mode - environment
#
# Copyright 2020-2021 Univention GmbH
#
# http://www.univention.de/
#
# All rights reserved.
#
# The source code of this program is made available
# under the terms of the GNU Affero General Public License version 3
# (GNU AGPL V3) as published by the Free Software Foundation.
#
# Binary versions of this program provided by Univention to you as
# well as other copyrighted, protected or trademarked materials like
# Logos, graphics, fonts, specific documentations and configurations,
# cryptographic keys etc. are subject to a license agreement between
# you and Univention and not subject to the GNU AGPL V3.
#
# In the case you use this program under the terms of the GNU AGPL V3,
# the program is provided in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public
# License with the Debian GNU/Linux or Univention distribution in file
# /usr/share/common-licenses/AGPL-3; if not, see
# <http://www.gnu.org/licenses/>.
[Unit]
Description=Univention container mode environment
DefaultDependencies=no
Conflicts=shutdown.target
After=systemd-remount-fs.service
Before=systemd-sysusers.service sysinit.target shutdown.target
ConditionVirtualization=container
ConditionPathIsReadWrite=/dev/shm
ConditionPathExists=!/dev/shm/univention-container-mode.env
# ignore affinity container from docker-compose environment
# => (systemd: Ignoring invalid environment assignment)
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/bash -c '[[ -f /proc/1/environ ]] && \
xargs -0 -n 1 echo </proc/1/environ | \
egrep --invert-match -- "^affinity:container==" > \
/dev/shm/univention-container-mode.env'
ExecStart=/bin/bash -c '[[ -d /run/secrets ]] && \
for secret in $(find /run/secrets -type f); do \
echo "$$(basename $${secret})=\'$$(<$${secret})\'" >> \
/dev/shm/univention-container-mode.env; \
done || /bin/true'
ExecStop=/bin/rm \
--force \
--verbose \
/dev/shm/univention-container-mode.env
[Install]
WantedBy=sysinit.target