Fix: Push on Trapped Container Termination, Postgres Healthcheck & Typos
This commit is contained in:
parent
bf69b76c71
commit
bb78c0ad99
9 changed files with 157 additions and 49 deletions
|
@ -1,5 +1,5 @@
|
|||
ARG MARIADB_VERSION=10.9
|
||||
FROM mariadb:$MARIADB_VERSION
|
||||
FROM mariadb:$MARIADB_VERSION AS mariadb
|
||||
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||
ENV DEBIAN_FRONTEND="teletype" \
|
||||
TERM=xterm-256color \
|
||||
|
@ -55,8 +55,19 @@ COPY sync /sync/sync
|
|||
COPY start.sh /sync/start.sh
|
||||
RUN composer install
|
||||
ENV PATH="/sync:${PATH}"
|
||||
RUN chmod +x /sync/sync /etc/service/*/run
|
||||
RUN ln -s /sync/vendor/bin/wait-for-mariadb /usr/local/bin/wait-for-database && \
|
||||
chmod +x /sync/sync /etc/service/*/run
|
||||
ENTRYPOINT ["/bin/bash", "/sync/start.sh"]
|
||||
#CMD ["start.sh"]
|
||||
HEALTHCHECK --start-period=30s CMD /usr/local/bin/healthcheck.sh --connect
|
||||
RUN ln -s /sync/vendor/bin/wait-for-mysql /usr/local/bin/wait-for-database
|
||||
CMD ["/bin/bash", "/sync/start.sh"]
|
||||
HEALTHCHECK --start-period=30s \
|
||||
CMD /usr/local/bin/healthcheck.sh \
|
||||
--defaults-extra-file=/etc/healthcheck.cnf \
|
||||
--connect
|
||||
|
||||
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 []
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
ARG PGSQL_VERSION
|
||||
FROM postgres:$PGSQL_VERSION-alpine
|
||||
FROM postgres:$PGSQL_VERSION-alpine AS postgres
|
||||
RUN apk add --no-cache runit && \
|
||||
apk --no-cache --repository https://dl-cdn.alpinelinux.org/alpine/edge/main add \
|
||||
icu-libs \
|
||||
|
@ -57,10 +57,19 @@ COPY composer.* /sync/
|
|||
COPY syncer /sync/syncer
|
||||
COPY sync /sync/sync
|
||||
COPY start.sh /sync/start.sh
|
||||
ENV PATH="/sync:${PATH}"
|
||||
ENTRYPOINT ["start.sh"]
|
||||
#CMD ["start.sh"]
|
||||
COPY postgres_healthcheck.sh /usr/local/bin/postgres_healthcheck
|
||||
RUN composer install
|
||||
COPY postgres_healthcheck /sync/postgres_healthcheck
|
||||
HEALTHCHECK --start-period=30s CMD /sync/postgres_healthcheck
|
||||
RUN ln -s /sync/vendor/bin/wait-for-postgresql /usr/local/bin/wait-for-database
|
||||
ENV PATH="/sync:${PATH}"
|
||||
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
|
||||
ENTRYPOINT ["/bin/bash", "/sync/start.sh"]
|
||||
STOPSIGNAL SIGINT
|
||||
CMD ["/bin/bash", "/sync/start.sh"]
|
||||
HEALTHCHECK --start-period=30s \
|
||||
CMD /usr/local/bin/postgres_healthcheck
|
||||
|
||||
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"]
|
||||
|
|
12
bake.hcl
12
bake.hcl
|
@ -26,6 +26,7 @@ target "postgres-14" {
|
|||
args = {
|
||||
PGSQL_VERSION = 14
|
||||
}
|
||||
target = "postgres"
|
||||
}
|
||||
|
||||
target "postgres-13" {
|
||||
|
@ -36,6 +37,7 @@ target "postgres-13" {
|
|||
args = {
|
||||
PGSQL_VERSION = 13
|
||||
}
|
||||
target = "postgres"
|
||||
}
|
||||
|
||||
target "postgres-12" {
|
||||
|
@ -46,6 +48,7 @@ target "postgres-12" {
|
|||
args = {
|
||||
PGSQL_VERSION = 12
|
||||
}
|
||||
target = "postgres"
|
||||
}
|
||||
|
||||
target "postgres-11" {
|
||||
|
@ -56,6 +59,7 @@ target "postgres-11" {
|
|||
args = {
|
||||
PGSQL_VERSION = 11
|
||||
}
|
||||
target = "postgres"
|
||||
}
|
||||
|
||||
target "postgres-10" {
|
||||
|
@ -66,6 +70,7 @@ target "postgres-10" {
|
|||
args = {
|
||||
PGSQL_VERSION = 10
|
||||
}
|
||||
target = "postgres"
|
||||
}
|
||||
|
||||
target "mariadb-10-9" {
|
||||
|
@ -79,6 +84,7 @@ target "mariadb-10-9" {
|
|||
args = {
|
||||
MARIADB_VERSION=10.9
|
||||
}
|
||||
target = "mariadb"
|
||||
}
|
||||
target "mariadb-10-8" {
|
||||
context = "."
|
||||
|
@ -88,6 +94,7 @@ target "mariadb-10-8" {
|
|||
args = {
|
||||
MARIADB_VERSION=10.8
|
||||
}
|
||||
target = "mariadb"
|
||||
}
|
||||
target "mariadb-10-7" {
|
||||
context = "."
|
||||
|
@ -97,6 +104,7 @@ target "mariadb-10-7" {
|
|||
args = {
|
||||
MARIADB_VERSION=10.7
|
||||
}
|
||||
target = "mariadb"
|
||||
}
|
||||
target "mariadb-10-6" {
|
||||
context = "."
|
||||
|
@ -106,6 +114,7 @@ target "mariadb-10-6" {
|
|||
args = {
|
||||
MARIADB_VERSION=10.6
|
||||
}
|
||||
target = "mariadb"
|
||||
}
|
||||
target "mariadb-10-5" {
|
||||
context = "."
|
||||
|
@ -115,6 +124,7 @@ target "mariadb-10-5" {
|
|||
args = {
|
||||
MARIADB_VERSION=10.5
|
||||
}
|
||||
target = "mariadb"
|
||||
}
|
||||
target "mariadb-10-4" {
|
||||
context = "."
|
||||
|
@ -124,6 +134,7 @@ target "mariadb-10-4" {
|
|||
args = {
|
||||
MARIADB_VERSION=10.4
|
||||
}
|
||||
target = "mariadb"
|
||||
}
|
||||
target "mariadb-10-3" {
|
||||
context = "."
|
||||
|
@ -133,4 +144,5 @@ target "mariadb-10-3" {
|
|||
args = {
|
||||
MARIADB_VERSION=10.3
|
||||
}
|
||||
target = "mariadb"
|
||||
}
|
75
composer.lock
generated
75
composer.lock
generated
|
@ -108,16 +108,16 @@
|
|||
},
|
||||
{
|
||||
"name": "aws/aws-sdk-php",
|
||||
"version": "3.234.4",
|
||||
"version": "3.234.7",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/aws/aws-sdk-php.git",
|
||||
"reference": "8d56ddb99632200273bb933cbf82b758ab9cde2a"
|
||||
"reference": "325931ead99e794657f88393c5b7cdf56723aadb"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/8d56ddb99632200273bb933cbf82b758ab9cde2a",
|
||||
"reference": "8d56ddb99632200273bb933cbf82b758ab9cde2a",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/325931ead99e794657f88393c5b7cdf56723aadb",
|
||||
"reference": "325931ead99e794657f88393c5b7cdf56723aadb",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -194,9 +194,9 @@
|
|||
"support": {
|
||||
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
|
||||
"issues": "https://github.com/aws/aws-sdk-php/issues",
|
||||
"source": "https://github.com/aws/aws-sdk-php/tree/3.234.4"
|
||||
"source": "https://github.com/aws/aws-sdk-php/tree/3.234.7"
|
||||
},
|
||||
"time": "2022-08-26T18:20:48+00:00"
|
||||
"time": "2022-08-31T18:25:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "bramus/ansi-php",
|
||||
|
@ -290,16 +290,16 @@
|
|||
},
|
||||
{
|
||||
"name": "guzzlehttp/guzzle",
|
||||
"version": "7.4.5",
|
||||
"version": "7.5.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/guzzle.git",
|
||||
"reference": "1dd98b0564cb3f6bd16ce683cb755f94c10fbd82"
|
||||
"reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/1dd98b0564cb3f6bd16ce683cb755f94c10fbd82",
|
||||
"reference": "1dd98b0564cb3f6bd16ce683cb755f94c10fbd82",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/b50a2a1251152e43f6a37f0fa053e730a67d25ba",
|
||||
"reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -314,10 +314,10 @@
|
|||
"psr/http-client-implementation": "1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"bamarni/composer-bin-plugin": "^1.4.1",
|
||||
"bamarni/composer-bin-plugin": "^1.8.1",
|
||||
"ext-curl": "*",
|
||||
"php-http/client-integration-tests": "^3.0",
|
||||
"phpunit/phpunit": "^8.5.5 || ^9.3.5",
|
||||
"phpunit/phpunit": "^8.5.29 || ^9.5.23",
|
||||
"psr/log": "^1.1 || ^2.0 || ^3.0"
|
||||
},
|
||||
"suggest": {
|
||||
|
@ -327,8 +327,12 @@
|
|||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"bamarni-bin": {
|
||||
"bin-links": true,
|
||||
"forward-command": false
|
||||
},
|
||||
"branch-alias": {
|
||||
"dev-master": "7.4-dev"
|
||||
"dev-master": "7.5-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
|
@ -394,7 +398,7 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/guzzle/guzzle/issues",
|
||||
"source": "https://github.com/guzzle/guzzle/tree/7.4.5"
|
||||
"source": "https://github.com/guzzle/guzzle/tree/7.5.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -410,20 +414,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-06-20T22:16:13+00:00"
|
||||
"time": "2022-08-28T15:39:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/promises",
|
||||
"version": "1.5.1",
|
||||
"version": "1.5.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/promises.git",
|
||||
"reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da"
|
||||
"reference": "b94b2807d85443f9719887892882d0329d1e2598"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da",
|
||||
"reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da",
|
||||
"url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598",
|
||||
"reference": "b94b2807d85443f9719887892882d0329d1e2598",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -478,7 +482,7 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/guzzle/promises/issues",
|
||||
"source": "https://github.com/guzzle/promises/tree/1.5.1"
|
||||
"source": "https://github.com/guzzle/promises/tree/1.5.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -494,20 +498,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-10-22T20:56:57+00:00"
|
||||
"time": "2022-08-28T14:55:35+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/psr7",
|
||||
"version": "2.4.0",
|
||||
"version": "2.4.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/psr7.git",
|
||||
"reference": "13388f00956b1503577598873fffb5ae994b5737"
|
||||
"reference": "69568e4293f4fa993f3b0e51c9723e1e17c41379"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/13388f00956b1503577598873fffb5ae994b5737",
|
||||
"reference": "13388f00956b1503577598873fffb5ae994b5737",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/69568e4293f4fa993f3b0e51c9723e1e17c41379",
|
||||
"reference": "69568e4293f4fa993f3b0e51c9723e1e17c41379",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -521,15 +525,19 @@
|
|||
"psr/http-message-implementation": "1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"bamarni/composer-bin-plugin": "^1.4.1",
|
||||
"bamarni/composer-bin-plugin": "^1.8.1",
|
||||
"http-interop/http-factory-tests": "^0.9",
|
||||
"phpunit/phpunit": "^8.5.8 || ^9.3.10"
|
||||
"phpunit/phpunit": "^8.5.29 || ^9.5.23"
|
||||
},
|
||||
"suggest": {
|
||||
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"bamarni-bin": {
|
||||
"bin-links": true,
|
||||
"forward-command": false
|
||||
},
|
||||
"branch-alias": {
|
||||
"dev-master": "2.4-dev"
|
||||
}
|
||||
|
@ -593,7 +601,7 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/guzzle/psr7/issues",
|
||||
"source": "https://github.com/guzzle/psr7/tree/2.4.0"
|
||||
"source": "https://github.com/guzzle/psr7/tree/2.4.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -609,7 +617,7 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-06-20T21:43:11+00:00"
|
||||
"time": "2022-08-28T14:45:39+00:00"
|
||||
},
|
||||
{
|
||||
"name": "jimmiw/php-time-ago",
|
||||
|
@ -959,16 +967,17 @@
|
|||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/matthewbaggett/wait-for-mysql.git",
|
||||
"reference": "729ef9518a8df1c4685654ffda034e766047ae10"
|
||||
"reference": "f7ba6c81b80ccf1296061fc23fc5b719aeac763d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/matthewbaggett/wait-for-mysql/zipball/729ef9518a8df1c4685654ffda034e766047ae10",
|
||||
"reference": "729ef9518a8df1c4685654ffda034e766047ae10",
|
||||
"url": "https://api.github.com/repos/matthewbaggett/wait-for-mysql/zipball/f7ba6c81b80ccf1296061fc23fc5b719aeac763d",
|
||||
"reference": "f7ba6c81b80ccf1296061fc23fc5b719aeac763d",
|
||||
"shasum": ""
|
||||
},
|
||||
"default-branch": true,
|
||||
"bin": [
|
||||
"wait-for-mariadb",
|
||||
"wait-for-mysql",
|
||||
"wait-for-postgresql"
|
||||
],
|
||||
|
@ -987,7 +996,7 @@
|
|||
"issues": "https://github.com/matthewbaggett/wait-for-mysql/issues",
|
||||
"source": "https://github.com/matthewbaggett/wait-for-mysql/tree/main"
|
||||
},
|
||||
"time": "2022-08-28T09:25:52+00:00"
|
||||
"time": "2022-09-01T11:47:40+00:00"
|
||||
},
|
||||
{
|
||||
"name": "monolog/monolog",
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Create /etc/my.cnf to allow internal utils to JustWork:tm:
|
||||
echo "[mariadb-client]" > /etc/my.cnf
|
||||
echo "user = $MARIADB_USER" >> /etc/my.cnf
|
||||
echo "password = $MARIADB_PASSWORD" >> /etc/my.cnf
|
||||
echo "[mariadb-client]" > /etc/healthcheck.cnf
|
||||
echo "user = $MARIADB_USER" >> /etc/healthcheck.cnf
|
||||
echo "password = $MARIADB_PASSWORD" >> /etc/healthcheck.cnf
|
||||
|
||||
# Call upstreamed mariadb entrypoint.
|
||||
echo "Running docker-entrypoint"
|
||||
|
|
12
start.sh
12
start.sh
|
@ -6,6 +6,18 @@ dos2unix /etc/service/*/run
|
|||
# Fix permissions on run files
|
||||
chmod +x /etc/service/*/run
|
||||
|
||||
# Define shutdown + cleanup procedure
|
||||
cleanup() {
|
||||
echo "Container stop requested, running final dump + cleanup"
|
||||
/sync/sync --push
|
||||
echo "Good bye!"
|
||||
}
|
||||
|
||||
# Trap SIGTERM
|
||||
echo "Setting SIGTERM trap"
|
||||
trap 'cleanup' EXIT SIGINT
|
||||
trap 'echo SIGQUIT' SIGQUIT
|
||||
|
||||
# Start Runit.
|
||||
echo "Starting Runit."
|
||||
runsvdir -P /etc/service
|
|
@ -3,7 +3,7 @@
|
|||
sleep 10
|
||||
echo "Waiting for database before running sync-pull.."
|
||||
/usr/local/bin/wait-for-database
|
||||
echo "Database read, running sync-pull."
|
||||
echo "Database ready, running sync-pull."
|
||||
/sync/sync --pull
|
||||
|
||||
sleep infinity
|
55
traptest.sh
Executable file
55
traptest.sh
Executable file
|
@ -0,0 +1,55 @@
|
|||
#!/bin/bash
|
||||
# traptest.sh
|
||||
# Define shutdown + cleanup procedure
|
||||
cleanup() {
|
||||
echo "Container stop requested, running final dump + cleanup"
|
||||
echo "Good bye!"
|
||||
}
|
||||
|
||||
# Trap SIGTERM
|
||||
echo "Setting SIGTERM trap"
|
||||
trap 'cleanup' EXIT SIGINT
|
||||
trap 'echo SIGQUIT' SIGQUIT
|
||||
|
||||
# Trap SIGTERM
|
||||
#echo "Setting SIGTERM trap"
|
||||
#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