mirror of
https://github.com/fradelg/docker-mysql-cron-backup.git
synced 2025-01-18 16:22:33 +01:00
Compare commits
2 commits
d5d98e5a7c
...
cff595e634
Author | SHA1 | Date | |
---|---|---|---|
|
cff595e634 | ||
|
dc253cd1ea |
3 changed files with 23 additions and 15 deletions
18
Dockerfile
18
Dockerfile
|
@ -12,17 +12,17 @@ ENV GO111MODULE=on
|
||||||
RUN go mod tidy
|
RUN go mod tidy
|
||||||
RUN CGO_ENABLED=0 GOOS=linux GO111MODULE=on go build -a -o /go/bin/dockerize .
|
RUN CGO_ENABLED=0 GOOS=linux GO111MODULE=on go build -a -o /go/bin/dockerize .
|
||||||
|
|
||||||
FROM alpine:3.21.0
|
FROM alpine:3.20.3
|
||||||
LABEL maintainer "Fco. Javier Delgado del Hoyo <frandelhoyo@gmail.com>"
|
LABEL maintainer "Fco. Javier Delgado del Hoyo <frandelhoyo@gmail.com>"
|
||||||
|
|
||||||
RUN apk add --update \
|
RUN apk add --update \
|
||||||
tzdata \
|
tzdata \
|
||||||
bash \
|
bash \
|
||||||
mysql-client \
|
gzip \
|
||||||
gzip \
|
openssl \
|
||||||
openssl \
|
mysql-client=~10.11 \
|
||||||
mariadb-connector-c \
|
mariadb-connector-c \
|
||||||
fdupes && \
|
fdupes && \
|
||||||
rm -rf /var/cache/apk/*
|
rm -rf /var/cache/apk/*
|
||||||
|
|
||||||
COPY --from=binary /go/bin/dockerize /usr/local/bin
|
COPY --from=binary /go/bin/dockerize /usr/local/bin
|
||||||
|
@ -43,6 +43,6 @@ RUN mkdir /backup && \
|
||||||
VOLUME ["/backup"]
|
VOLUME ["/backup"]
|
||||||
|
|
||||||
HEALTHCHECK --interval=2s --retries=1800 \
|
HEALTHCHECK --interval=2s --retries=1800 \
|
||||||
CMD stat /HEALTHY.status || exit 1
|
CMD stat /HEALTHY.status || exit 1
|
||||||
|
|
||||||
CMD dockerize -wait tcp://${MYSQL_HOST}:${MYSQL_PORT} -timeout ${TIMEOUT} /run.sh
|
CMD dockerize -wait tcp://${MYSQL_HOST}:${MYSQL_PORT} -timeout ${TIMEOUT} /run.sh
|
||||||
|
|
|
@ -29,7 +29,13 @@ do
|
||||||
echo "==> Dumping database: $db"
|
echo "==> Dumping database: $db"
|
||||||
FILENAME=/backup/$DATE.$db.sql
|
FILENAME=/backup/$DATE.$db.sql
|
||||||
LATEST=/backup/latest.$db.sql
|
LATEST=/backup/latest.$db.sql
|
||||||
if mysqldump --single-transaction --skip-comments $MYSQLDUMP_OPTS -h "$MYSQL_HOST" -P "$MYSQL_PORT" -u "$MYSQL_USER" -p"$MYSQL_PASS" $MYSQL_SSL_OPTS "$db" > "$FILENAME"
|
BASIC_OPTS="--single-transaction"
|
||||||
|
if [ -n "$REMOVE_DUPLICATES" ]
|
||||||
|
then
|
||||||
|
echo "WARNING: disabling comments in backup to remove deuplicate backups. Automatic database name detection won't work so set MYSQL_DATABASE on restore"
|
||||||
|
BASIC_OPTS="$BASIC_OPTS" --skip-comments
|
||||||
|
fi
|
||||||
|
if mysqldump $BASIC_OPTS $MYSQLDUMP_OPTS -h "$MYSQL_HOST" -P "$MYSQL_PORT" -u "$MYSQL_USER" -p"$MYSQL_PASS" $MYSQL_SSL_OPTS "$db" > "$FILENAME"
|
||||||
then
|
then
|
||||||
EXT=
|
EXT=
|
||||||
if [ -z "${USE_PLAIN_SQL}" ]
|
if [ -z "${USE_PLAIN_SQL}" ]
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
version: "2"
|
|
||||||
services:
|
services:
|
||||||
mariadb:
|
mariadb:
|
||||||
image: mariadb:10
|
image: mariadb:10.11
|
||||||
container_name: my_mariadb
|
container_name: my_mariadb
|
||||||
|
security_opt:
|
||||||
|
- seccomp:unconfined
|
||||||
expose:
|
expose:
|
||||||
- 3306
|
- 3306
|
||||||
volumes:
|
volumes:
|
||||||
|
@ -14,7 +15,7 @@ services:
|
||||||
- MYSQL_ALLOW_EMPTY_ROOT_PASSWORD=yes
|
- MYSQL_ALLOW_EMPTY_ROOT_PASSWORD=yes
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "healthcheck.sh", "--su-mysql", "--connect"]
|
test: [ "CMD", "healthcheck.sh", "--su-mysql", "--connect" ]
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 10
|
retries: 10
|
||||||
|
|
||||||
|
@ -29,11 +30,12 @@ services:
|
||||||
environment:
|
environment:
|
||||||
- MYSQL_HOST=my_mariadb
|
- MYSQL_HOST=my_mariadb
|
||||||
- MYSQL_USER=root
|
- MYSQL_USER=root
|
||||||
|
- MYSQL_DATABASE=${DATABASE_NAME}
|
||||||
- MYSQL_PASS=${MARIADB_ROOT_PASSWORD}
|
- MYSQL_PASS=${MARIADB_ROOT_PASSWORD}
|
||||||
- MAX_BACKUPS=1
|
- MAX_BACKUPS=1
|
||||||
- INIT_BACKUP=1
|
- INIT_BACKUP=1
|
||||||
- CRON_TIME=0 0 * * *
|
- CRON_TIME=0 0 * * *
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
data:
|
data:
|
||||||
|
|
Loading…
Reference in a new issue