Skip to content

Commit d8434a0

Browse files
author
Stan Yagolnitser
committed
added sanity checks for /setup/systemd route
1 parent 653c4aa commit d8434a0

File tree

1 file changed

+27
-6
lines changed

1 file changed

+27
-6
lines changed

nginx.conf

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,26 @@ http {
121121
alias /ca/ca.crt;
122122
}
123123

124-
location /setup {
124+
location /setup/systemd {
125125
add_header "Content-type" "text/plain" always;
126126
return 200 '
127+
set -e
128+
129+
if [ ! -d /etc/systemd ]; then
130+
echo "Not a systemd system"
131+
exit 1
132+
fi
133+
134+
if [[ $EUID -ne 0 ]]; then
135+
echo "Must be root to change system files"
136+
exit 1
137+
fi
138+
139+
if [[ $(systemctl is-active --quiet docker.service) -ne 0 ]]; then
140+
echo "Docker service missing"
141+
exit 1
142+
fi
143+
127144
mkdir -p /etc/systemd/system/docker.service.d
128145
cat << EOD > /etc/systemd/system/docker.service.d/http-proxy.conf
129146
[Service]
@@ -132,19 +149,23 @@ EOD
132149
133150
# Get the CA certificate from the proxy and make it a trusted root.
134151
curl $scheme://$http_host/ca.crt > /usr/share/ca-certificates/docker_registry_proxy.crt
135-
echo "docker_registry_proxy.crt" >> /etc/ca-certificates.conf
152+
if fgrep -q "docker_registry_proxy.crt" /etc/ca-certificates.conf ; then
153+
echo "certificate refreshed"
154+
else
155+
echo "docker_registry_proxy.crt" >> /etc/ca-certificates.conf
156+
fi
157+
136158
update-ca-certificates --fresh
137159
138160
# Reload systemd
139161
systemctl daemon-reload
140162
141163
# Restart dockerd
142164
systemctl restart docker.service
165+
echo "Docker configured with HTTPS_PROXY=$scheme://$http_host/"
143166
';
144-
}
145-
146-
# @TODO: add a dynamic root path that generates instructions for usage on docker clients
147-
}
167+
} # end location /setup/systemd
168+
} # end server
148169

149170

150171
# The caching layer

0 commit comments

Comments
 (0)