定制Docker MySQL构建赢得';跑不动

定制Docker MySQL构建赢得';跑不动,mysql,docker,docker-compose,dockerfile,Mysql,Docker,Docker Compose,Dockerfile,我正在尝试编写用于设置Mysql 5.7的自定义Dockerfile 作为其中的一部分,我还想设置s3备份 但是当我尝试运行/创建docker实例时,它失败了 以下是Dockerfile: # Start with a base mysql:5.6 image FROM mysql:5.7 MAINTAINER Ikenna N. Okpala <me@ikennaokpala.com> USER root # RUN locale-gen ENV DEBIAN_FRONTEND

我正在尝试编写用于设置Mysql 5.7的自定义Dockerfile

作为其中的一部分,我还想设置s3备份

但是当我尝试运行/创建docker实例时,它失败了

以下是Dockerfile:

# Start with a base mysql:5.6 image
FROM mysql:5.7

MAINTAINER Ikenna N. Okpala <me@ikennaokpala.com>

USER root
# RUN locale-gen
ENV DEBIAN_FRONTEND noninteractive
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US.en
ENV LC_ALL en_US.UTF-8
ENV PS_NGX_EXTRA_FLAGS --with-cc=/usr/bin/gcc --with-ld-opt=-static-libstdc++


# Add all base dependencies
RUN apt-get update -y

RUN apt-get install -y build-essential checkinstall
RUN apt-get install -y vim curl wget unzip
RUN apt-get install -y libfuse-dev libcurl4-openssl-dev mime-support automake libtool python-docutils libreadline-dev
RUN apt-get install -y pkg-config libssl-dev
RUN apt-get install -y git-core
RUN apt-get install -y man cron
RUN apt-get install -y libgmp-dev
RUN apt-get install -y zlib1g-dev
RUN apt-get install -y libxslt-dev
RUN apt-get install -y libxml2-dev
RUN apt-get install -y libpcre3 libpcre3-dev
RUN apt-get install -y freetds-dev
# RUN apt-get install -y openjdk-7-jdk
RUN apt-get install -y software-properties-common

RUN mkdir -p /mnt/s3b

RUN sed -i -e"s/^bind-address\s*=\s*127.0.0.1/bind-address = 0.0.0.0/" /etc/mysql/my.cnf

RUN cd ~/
RUN /bin/bash -l -c "wget https://github.com/s3fs-fuse/s3fs-fuse/archive/master.zip"
RUN unzip master.zip
RUN cd s3fs-fuse-master/ && ./autogen.sh && ./configure --prefix=/usr --with-openssl && make && make install

ADD templates/setup.sh /root/setup.sh
RUN chmod +x /root/setup.sh

ADD templates/backup-cron /etc/cron.d/backup-cron
RUN chmod 0644 /etc/cron.d/backup-cron
RUN cron
# RUN chmod +x /root/backup-cron

EXPOSE 3306

CMD ["/bin/bash", "-l", "-c", "/root/setup.sh"]
以下是docker运行命令:

docker run --name=mysql-s3 --env MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} --env MYSQL_USER=${MYSQL_USER} --env MYSQL_PASSWORD=${MYSQL_PASSWORD} --env MYSQL_DATABASE=${MYSQL_DATABASE} --env AWS_S3=${AWS_S3} --detach --publish 3306:3306 --volume=/vagrant/scripts/dumps/:/dumps/ --cap-add mknod --cap-add sys_admin --device=/dev/fuse --privileged mysql-s3

使用fuse和修改基本mysql容器,这种方法似乎太复杂了。我建议您只使用基本MYSQL,编写一个脚本,在单独的容器中运行,该容器将MYSQL转储到文本文件,然后使用AWS CLI将该文本文件复制到S3。

使用fuse和修改基本MYSQL容器,这种方法似乎太复杂了。我建议您只使用基本MYSQL,编写一个脚本,在单独的容器中运行,该容器将MYSQL转储到文本文件中,然后使用AWS CLI将该文本文件复制到S3。

失败意味着您会收到错误?不,我使用docker events&在前台对其进行调试,我得到了一个“(…开始)die'It fails意味着你得到了一个错误?不,我使用docker事件&在前台调试它,我得到了一个'(…开始)die'
docker run --name=mysql-s3 --env MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} --env MYSQL_USER=${MYSQL_USER} --env MYSQL_PASSWORD=${MYSQL_PASSWORD} --env MYSQL_DATABASE=${MYSQL_DATABASE} --env AWS_S3=${AWS_S3} --detach --publish 3306:3306 --volume=/vagrant/scripts/dumps/:/dumps/ --cap-add mknod --cap-add sys_admin --device=/dev/fuse --privileged mysql-s3