Working on CTRL+C and everything.
This commit is contained in:
parent
bb78c0ad99
commit
e501f50fbd
7 changed files with 32 additions and 74 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -1,4 +1,5 @@
|
||||||
.php-cs-fixer.cache
|
.php-cs-fixer.cache
|
||||||
.idea
|
.idea
|
||||||
/vendor/
|
/vendor/
|
||||||
.minio
|
.minio
|
||||||
|
/test.yml
|
|
@ -50,24 +50,17 @@ COPY sync-push.runit /etc/service/sync-push/run
|
||||||
VOLUME /dumps
|
VOLUME /dumps
|
||||||
WORKDIR /sync
|
WORKDIR /sync
|
||||||
COPY composer.* /sync/
|
COPY composer.* /sync/
|
||||||
|
RUN composer install
|
||||||
COPY syncer /sync/syncer
|
COPY syncer /sync/syncer
|
||||||
COPY sync /sync/sync
|
COPY sync /sync/sync
|
||||||
COPY start.sh /sync/start.sh
|
COPY start.sh /sync/start.sh
|
||||||
RUN composer install
|
|
||||||
ENV PATH="/sync:${PATH}"
|
ENV PATH="/sync:${PATH}"
|
||||||
RUN ln -s /sync/vendor/bin/wait-for-mariadb /usr/local/bin/wait-for-database && \
|
RUN ln -s /sync/vendor/bin/wait-for-mariadb /usr/local/bin/wait-for-database && \
|
||||||
chmod +x /sync/sync /etc/service/*/run
|
chmod +x /sync/sync /etc/service/*/run
|
||||||
ENTRYPOINT ["/bin/bash", "/sync/start.sh"]
|
ENTRYPOINT ["/sync/start.sh"]
|
||||||
CMD ["/bin/bash", "/sync/start.sh"]
|
CMD []
|
||||||
HEALTHCHECK --start-period=30s \
|
HEALTHCHECK --start-period=30s \
|
||||||
CMD /usr/local/bin/healthcheck.sh \
|
CMD /usr/local/bin/healthcheck.sh \
|
||||||
--defaults-extra-file=/etc/healthcheck.cnf \
|
--defaults-extra-file=/etc/healthcheck.cnf \
|
||||||
--connect
|
--connect
|
||||||
|
STOPSIGNAL SIGTERM
|
||||||
FROM mariadb AS mariadb-traptest
|
|
||||||
COPY traptest.sh /usr/local/bin/traptest
|
|
||||||
#STOPSIGNAL SIGINT
|
|
||||||
RUN chmod +x /usr/local/bin/traptest
|
|
||||||
#CMD ["/usr/local/bin/traptest"]
|
|
||||||
ENTRYPOINT ["/usr/local/bin/traptest"]
|
|
||||||
#ENTRYPOINT []
|
|
||||||
|
|
|
@ -54,22 +54,17 @@ COPY sync-push.runit /etc/service/sync-push/run
|
||||||
VOLUME /dumps
|
VOLUME /dumps
|
||||||
WORKDIR /sync
|
WORKDIR /sync
|
||||||
COPY composer.* /sync/
|
COPY composer.* /sync/
|
||||||
|
RUN composer install
|
||||||
COPY syncer /sync/syncer
|
COPY syncer /sync/syncer
|
||||||
COPY sync /sync/sync
|
COPY sync /sync/sync
|
||||||
COPY start.sh /sync/start.sh
|
COPY start.sh /sync/start.sh
|
||||||
COPY postgres_healthcheck.sh /usr/local/bin/postgres_healthcheck
|
COPY postgres_healthcheck.sh /usr/local/bin/postgres_healthcheck
|
||||||
RUN composer install
|
|
||||||
ENV PATH="/sync:${PATH}"
|
ENV PATH="/sync:${PATH}"
|
||||||
RUN ln -s /sync/vendor/bin/wait-for-postgresql /usr/local/bin/wait-for-database && \
|
RUN ln -s /sync/vendor/bin/wait-for-postgresql /usr/local/bin/wait-for-database && \
|
||||||
chmod +x /sync/sync /etc/service/*/run /usr/local/bin/postgres_healthcheck
|
chmod +x /sync/sync /etc/service/*/run /usr/local/bin/postgres_healthcheck
|
||||||
ENTRYPOINT ["/bin/bash", "/sync/start.sh"]
|
ENTRYPOINT ["/bin/bash", "/sync/start.sh"]
|
||||||
STOPSIGNAL SIGINT
|
CMD []
|
||||||
CMD ["/bin/bash", "/sync/start.sh"]
|
|
||||||
HEALTHCHECK --start-period=30s \
|
HEALTHCHECK --start-period=30s \
|
||||||
CMD /usr/local/bin/postgres_healthcheck
|
CMD /usr/local/bin/postgres_healthcheck
|
||||||
|
STOPSIGNAL SIGTERM
|
||||||
|
|
||||||
FROM postgres AS postgres-traptest
|
|
||||||
COPY traptest.sh /usr/local/bin/traptest
|
|
||||||
RUN chmod +x /usr/local/bin/traptest
|
|
||||||
CMD []
|
|
||||||
ENTRYPOINT ["/usr/local/bin/traptest"]
|
|
||||||
|
|
6
Dockerfile.traptest
Normal file
6
Dockerfile.traptest
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
FROM ubuntu:jammy AS mariadb-traptest
|
||||||
|
COPY traptest.sh /usr/local/bin/traptest
|
||||||
|
RUN chmod +x /usr/local/bin/traptest
|
||||||
|
ENTRYPOINT ["/usr/local/bin/traptest"]
|
||||||
|
CMD []
|
||||||
|
STOPSIGNAL SIGINT
|
|
@ -26,6 +26,7 @@ services:
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: Dockerfile.postgres
|
dockerfile: Dockerfile.postgres
|
||||||
|
target: postgres
|
||||||
args:
|
args:
|
||||||
PGSQL_VERSION: 14
|
PGSQL_VERSION: 14
|
||||||
environment:
|
environment:
|
||||||
|
@ -49,6 +50,7 @@ services:
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: Dockerfile.mariadb
|
dockerfile: Dockerfile.mariadb
|
||||||
|
target: mariadb
|
||||||
args:
|
args:
|
||||||
MARIADB_VERSION: 10.9
|
MARIADB_VERSION: 10.9
|
||||||
environment: &mariadb
|
environment: &mariadb
|
||||||
|
@ -74,6 +76,7 @@ services:
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: Dockerfile.mariadb
|
dockerfile: Dockerfile.mariadb
|
||||||
|
target: mariadb
|
||||||
args:
|
args:
|
||||||
MARIADB_VERSION: 10.3
|
MARIADB_VERSION: 10.3
|
||||||
environment:
|
environment:
|
||||||
|
|
10
start.sh
10
start.sh
|
@ -8,16 +8,20 @@ chmod +x /etc/service/*/run
|
||||||
|
|
||||||
# Define shutdown + cleanup procedure
|
# Define shutdown + cleanup procedure
|
||||||
cleanup() {
|
cleanup() {
|
||||||
|
echo ""
|
||||||
|
echo "SIGTERM called!"
|
||||||
echo "Container stop requested, running final dump + cleanup"
|
echo "Container stop requested, running final dump + cleanup"
|
||||||
/sync/sync --push
|
/sync/sync --push
|
||||||
echo "Good bye!"
|
echo "Good bye!"
|
||||||
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
# Trap SIGTERM
|
# Trap SIGTERM
|
||||||
echo "Setting SIGTERM trap"
|
echo "Setting SIGTERM trap"
|
||||||
trap 'cleanup' EXIT SIGINT
|
trap 'cleanup' SIGTERM
|
||||||
trap 'echo SIGQUIT' SIGQUIT
|
|
||||||
|
|
||||||
# Start Runit.
|
# Start Runit.
|
||||||
echo "Starting Runit."
|
echo "Starting Runit."
|
||||||
runsvdir -P /etc/service
|
exec runsvdir -P /etc/service &
|
||||||
|
|
||||||
|
sleep infinity & wait
|
58
traptest.sh
58
traptest.sh
|
@ -1,55 +1,11 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# traptest.sh
|
# traptest.sh
|
||||||
# Define shutdown + cleanup procedure
|
|
||||||
cleanup() {
|
|
||||||
echo "Container stop requested, running final dump + cleanup"
|
|
||||||
echo "Good bye!"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Trap SIGTERM
|
trap 'echo "Caught EXIT"' EXIT
|
||||||
echo "Setting SIGTERM trap"
|
trap 'echo "Caught SIGINT"' SIGINT
|
||||||
trap 'cleanup' EXIT SIGINT
|
trap 'echo "Caught SIGTERM"' SIGTERM
|
||||||
trap 'echo SIGQUIT' SIGQUIT
|
trap 'echo "Caught SIGKILL"' SIGKILL
|
||||||
|
trap 'echo "Caught SIGQUIT"' SIGQUIT
|
||||||
|
|
||||||
# Trap SIGTERM
|
echo "Sleeping 600 seconds."
|
||||||
#echo "Setting SIGTERM trap"
|
sleep 600 & wait
|
||||||
#trap 'echo "Hello!"' SIGABRT SIGALRM SIGBUS SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT SIGIO SIGPIPE SIGPROF SIGPWR SIGQUIT SIGSEGV SIGSTKFLT SIGSTOP SIGTSTP SIGSYS SIGTERM SIGTRAP SIGTTIN SIGTTOU SIGURG SIGUSR1 SIGUSR2 SIGVTALRM SIGXCPU SIGXFSZ SIGWINCH
|
|
||||||
#trap 'cleanup' EXIT
|
|
||||||
#trap 'echo SIGABRT' SIGABRT
|
|
||||||
#trap 'echo SIGALRM' SIGALRM
|
|
||||||
#trap 'echo SIGBUS' SIGBUS
|
|
||||||
#trap 'echo SIGCHLD' SIGCHLD
|
|
||||||
#trap 'echo SIGCONT' SIGCONT
|
|
||||||
#trap 'echo SIGFPE' SIGFPE
|
|
||||||
#trap 'echo SIGHUP' SIGHUP
|
|
||||||
#trap 'echo SIGILL' SIGILL
|
|
||||||
#trap 'echo SIGINT' SIGINT
|
|
||||||
#trap 'echo SIGIO' SIGIO
|
|
||||||
#trap 'echo SIGPIPE' SIGPIPE
|
|
||||||
#trap 'echo SIGPROF' SIGPROF
|
|
||||||
#trap 'echo SIGPWR' SIGPWR
|
|
||||||
#trap 'echo SIGQUIT' SIGQUIT
|
|
||||||
#trap 'echo SIGSEGV' SIGSEGV
|
|
||||||
#trap 'echo SIGSTKFLT' SIGSTKFLT
|
|
||||||
#trap 'echo SIGSTOP' SIGSTOP
|
|
||||||
#trap 'echo SIGTSTP' SIGTSTP
|
|
||||||
#trap 'echo SIGSYS' SIGSYS
|
|
||||||
#trap 'echo SIGTERM' SIGTERM
|
|
||||||
#trap 'echo SIGTRAP' SIGTRAP
|
|
||||||
#trap 'echo SIGTTIN' SIGTTIN
|
|
||||||
#trap 'echo SIGTTOU' SIGTTOU
|
|
||||||
#trap 'echo SIGURG' SIGURG
|
|
||||||
#trap 'echo SIGUSR1' SIGUSR1
|
|
||||||
#trap 'echo SIGUSR2' SIGUSR2
|
|
||||||
#trap 'echo SIGVTALRM' SIGVTALRM
|
|
||||||
#trap 'echo SIGXCPU' SIGXCPU
|
|
||||||
#trap 'echo SIGXFSZ' SIGXFSZ
|
|
||||||
#trap 'echo SIGWINCH' SIGWINCH
|
|
||||||
|
|
||||||
echo "pid is $$"
|
|
||||||
|
|
||||||
while : # This is the same as "while true".
|
|
||||||
do
|
|
||||||
echo "Idling"
|
|
||||||
sleep 60 # This script is not really doing anything.
|
|
||||||
done
|
|
Loading…
Reference in a new issue