https://github.com/percona/percona-xtrabackup/releases

https://github.com/amwork2010/docker-xtrabackup


docker run --volumes-from my-database -v /var/backups/mysql:/target --rm martinhelmich/xtrabackup


Dockerfile:

FROM    debian:stretch-slim
RUN     apt-get -qq update && \
        apt-get -qq install wget lsb-release gnupg2 && \
        wget -q https://repo.percona.com/apt/percona-release_latest.stretch_all.deb && \
        dpkg -i percona-release_latest.stretch_all.deb && \
        apt-get -qq update && \
        apt-get -qq install percona-xtrabackup-24 && \
        apt-get -qq purge wget && \
        apt-get -qq autoclean && apt-get -qq autoremove && rm -rf /tmp/* /var/cache/apt/* /var/cache/depconf/*
COPY    entrypoint.sh /entrypoint.sh
VOLUME  /var/backup/mysql
ENTRYPOINT [ "/entrypoint.sh" ]


entrypoint.sh:

#!/usr/bin/env bash
[[ -n "${DEBUG}" ]] && set -x
set -e
XTRABACKUP="$(command -v xtrabackup)"
if [[ ! -x "${XTRABACKUP}" ]]; then
    echo "${XTRABACKUP} is not executable!"
    exit 1
fi
if [[ ! -d "${XTRABACKUP_SOURCE_DIR}" || ! "$(ls -A ${XTRABACKUP_SOURCE_DIR})" ]]; then
    echo "directory '${XTRABACKUP_SOURCE_DIR}' doesn't seem to contain a database"
    echo "check your env variable '\${XTRABACKUP_SOURCE_DIR}' please"
    exit 1
fi
if [[ -n "${@}" ]]; then
    # if custom cmd is provided, run xtrabackup with it
    ${XTRABACKUP} ${@}
else
    # run default backup routine
    ${XTRABACKUP} \
        --no-version-check \
        --backup \
        --datadir=${XTRABACKUP_SOURCE_DIR} \
        --target-dir=${XTRABACKUP_TARGET_DIR}
    ${XTRABACKUP} \
        --no-version-check \
        --prepare \
        --target-dir=${XTRABACKUP_TARGET_DIR}
fi
exit 0


签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回