从以前的docker-compose设置创建mysql dockerfile

时间:2018-04-04 08:21:41

标签: mysql docker docker-compose dockerfile

以前,我的数据库容器已使用docker-compose初始化。 由于我要转移到AWS,我想将它放在Dockerfile中。这显然不像我想象的那么简单。我怎么能这样做?

多克尔-撰写

services:
  mysql-db:
    image: mysql:latest
    container_name: camunda_mysql
    restart: always
    ports:
      - '3307:3306'
    environment: 
      - MYSQL_ROOT_PASSWORD=***
      - MYSQL_USER=***
      - MYSQL_DATABASE=camunda_db
    volumes:
      - MyDataVolume:/var/lib/mysql
    networks:
      - backend
volumes:
  MyDataVolume:

这是我在网上找到的东西,但是我无法让它工作:

Dockerfile

FROM ubuntu:latest
RUN dpkg-divert --local --rename --add /sbin/initctl
RUN ln -s /bin/true /sbin/initctl
RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list
RUN apt-get update
RUN apt-get -y install mysql-client mysql-server
RUN sed -i -e"s/^bind-address\s*=\s*127.0.0.1/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
ADD ./startup.sh /opt/startup.sh
EXPOSE 3306
CMD ["/bin/bash", "/opt/startup.sh"]

startup.sh

#!/bin/bash


if [ ! -f /var/lib/mysql/ibdata1 ]; then
    mysql_install_db

    /usr/bin/mysqld_safe &
    sleep 10s

    echo "GRANT ALL ON *.* TO USERNAME@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION; FLUSH PRIVILEGES" | mysql

    killall mysqld
    sleep 10s
fi

/usr/bin/mysqld_safe

谢谢!

0 个答案:

没有答案