Merge pull request 'Add healthcheck and create dependent services in supervisord' (#15) from additional-debug into develop
Reviewed-on: #15
This commit is contained in:
commit
64fb20c1d2
21
Dockerfile
21
Dockerfile
@ -13,13 +13,19 @@ RUN make clean && make build
|
|||||||
FROM docker:25.0.5-dind
|
FROM docker:25.0.5-dind
|
||||||
USER root
|
USER root
|
||||||
RUN apk add --no-cache \
|
RUN apk add --no-cache \
|
||||||
git bash supervisor
|
git bash supervisor python3 py3-pip
|
||||||
|
|
||||||
|
RUN pip3 install --break-system-packages supervisord-dependent-startup
|
||||||
|
|
||||||
COPY --from=builder /opt/src/act_runner/act_runner /usr/local/bin/act_runner
|
COPY --from=builder /opt/src/act_runner/act_runner /usr/local/bin/act_runner
|
||||||
COPY --from=builder /opt/src/act_runner/scripts/supervisord.conf /etc/supervisord.conf
|
COPY --from=builder /opt/src/act_runner/scripts/supervisord.conf /etc/supervisord.conf
|
||||||
COPY --from=builder /opt/src/act_runner/scripts/run.sh /opt/act/run.sh
|
COPY --from=builder /opt/src/act_runner/scripts/run.sh /opt/act/run.sh
|
||||||
COPY --from=builder /opt/src/act_runner/scripts/rootless.sh /opt/act/rootless.sh
|
COPY --from=builder /opt/src/act_runner/scripts/rootless.sh /opt/act/rootless.sh
|
||||||
|
|
||||||
|
COPY /root /
|
||||||
|
|
||||||
|
RUN chmod +x /healthcheck.sh
|
||||||
|
|
||||||
ENV DOCKER_PRUNE_INTERVAL="0 0 * * *"
|
ENV DOCKER_PRUNE_INTERVAL="0 0 * * *"
|
||||||
|
|
||||||
# Add Crontab for root user
|
# Add Crontab for root user
|
||||||
@ -28,17 +34,6 @@ RUN echo "${DOCKER_PRUNE_INTERVAL} echo Pruning docker volumes && docker volume
|
|||||||
# Remove warning from supervisord about running as root
|
# Remove warning from supervisord about running as root
|
||||||
RUN sed -i '/\[supervisord\]/a user=root' /etc/supervisord.conf
|
RUN sed -i '/\[supervisord\]/a user=root' /etc/supervisord.conf
|
||||||
|
|
||||||
# Add stdout/stderr logs for docker
|
HEALTHCHECK --interval=30s --timeout=15s --start-period=30s --retries=3 CMD "/healthcheck.sh"
|
||||||
RUN sed -i '/\[program:dockerd\]/a stdout_logfile_maxbytes=0' /etc/supervisord.conf && \
|
|
||||||
sed -i '/\[program:dockerd\]/a stdout_logfile=/dev/fd/1' /etc/supervisord.conf && \
|
|
||||||
sed -i '/\[program:dockerd\]/a redirect_stderr=true' /etc/supervisord.conf
|
|
||||||
|
|
||||||
# Add Cron to supervisord
|
|
||||||
RUN echo "" >> /etc/supervisord.conf && \
|
|
||||||
echo "[program:cron]" >> /etc/supervisord.conf && \
|
|
||||||
echo "command=/usr/sbin/crond -f" >> /etc/supervisord.conf && \
|
|
||||||
echo "stdout_logfile=/dev/fd/1" >> /etc/supervisord.conf && \
|
|
||||||
echo "stdout_logfile_maxbytes=0" >> /etc/supervisord.conf && \
|
|
||||||
echo "redirect_stderr=true" >> /etc/supervisord.conf
|
|
||||||
|
|
||||||
ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
|
ENTRYPOINT ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
|
8
root/etc/supervisor.d/act.conf
Normal file
8
root/etc/supervisor.d/act.conf
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[program:act_runner]
|
||||||
|
stdout_logfile=/dev/fd/1
|
||||||
|
stdout_logfile_maxbytes=0
|
||||||
|
redirect_stderr=true
|
||||||
|
command=/opt/act/rootless.sh
|
||||||
|
dependent_startup=true
|
||||||
|
dependent_startup_wait_for=dockerd:running
|
||||||
|
autostart=false
|
5
root/etc/supervisor.d/cron.conf
Normal file
5
root/etc/supervisor.d/cron.conf
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
[program:cron]
|
||||||
|
command=/usr/sbin/crond -f
|
||||||
|
stdout_logfile=/dev/fd/1
|
||||||
|
stdout_logfile_maxbytes=0
|
||||||
|
redirect_stderr=true
|
8
root/etc/supervisor.d/docker.conf
Normal file
8
root/etc/supervisor.d/docker.conf
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[program:dockerd]
|
||||||
|
command=/usr/local/bin/dockerd-entrypoint.sh
|
||||||
|
stdout_logfile_maxbytes=0
|
||||||
|
stdout_logfile=/dev/fd/1
|
||||||
|
redirect_stderr=true
|
||||||
|
startsecs=20
|
||||||
|
dependent_startup=true
|
||||||
|
autostart=false
|
28
root/etc/supervisord.conf
Normal file
28
root/etc/supervisord.conf
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
[supervisord]
|
||||||
|
nodaemon=true
|
||||||
|
logfile=/dev/null
|
||||||
|
logfile_maxbytes=0
|
||||||
|
|
||||||
|
[include]
|
||||||
|
files = /etc/supervisor.d/*.conf
|
||||||
|
|
||||||
|
[unix_http_server]
|
||||||
|
file=/run/supervisord.sock
|
||||||
|
|
||||||
|
[supervisorctl]
|
||||||
|
serverurl=unix:///run/supervisord.sock
|
||||||
|
|
||||||
|
[rpcinterface:supervisor]
|
||||||
|
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
|
||||||
|
|
||||||
|
#[eventlistener:processes]
|
||||||
|
#command=bash -c "echo READY && read line && kill -SIGQUIT $PPID"
|
||||||
|
#events=PROCESS_STATE_STOPPED,PROCESS_STATE_EXITED,PROCESS_STATE_FATAL
|
||||||
|
|
||||||
|
[eventlistener:dependentstartup]
|
||||||
|
command=python -m supervisord_dependent_startup
|
||||||
|
autostart=true
|
||||||
|
autorestart=unexpected
|
||||||
|
startretries=0
|
||||||
|
exitcodes=0,3
|
||||||
|
events=PROCESS_STATE
|
7
root/healthcheck.sh
Normal file
7
root/healthcheck.sh
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Check docker socket is running
|
||||||
|
ls -l /run | grep docker.sock
|
||||||
|
|
||||||
|
# Check act is running
|
||||||
|
/usr/bin/supervisorctl status act_runner | grep RUNNING
|
Loading…
x
Reference in New Issue
Block a user