Docker 搭建開源 CMDB平台 “OpsManage” 之 Mariadb


整理了一下文檔  今天來構建mariadb    

                                 

主機還是 centos  172.16.0.200 構建第二個images 

  直接shell.sh 完成 

 

#!/bin/bash echo "----------------demo------------------" #--------------------new--mysql--dockerfile----------
if [[ ! -e ./Dockerfile ]]; then
   cat  > ./Dockerfile <<\EOF FROM docker.io/centos MAINTAINER Mrchen <237356573@qq.com> ENV DATA_DIR /var/lib/mysql # Install Mariadb RUN yum install -y mariadb mariadb-server RUN yum clean all ADD mysqld_charset.cnf /etc/my.cnf.d/ COPY scripts /scripts RUN chmod +x /scripts/start EXPOSE 3306 VOLUME ["/var/lib/mysql"] CMD ["/bin/bash"] ENTRYPOINT ["/scripts/start"] EOF else
echo "Docker 已經存在"
fi #---------------new-mysql.config--------------------
if [[ ! -e ./mysqld_charset.cnf ]]; then
cat > ./mysqld_charset.cnf <<\EOF [mysqld] character_set_server=utf8 character_set_filesystem=utf8 collation-server=utf8_general_ci init-connect='SET NAMES utf8' init_connect='SET collation_connection = utf8_general_ci' EOF else
echo "mysqld.config 已存在!"
fi #--------------new-start腳本---------------------
if [[ ! -d ./scripts  ]]; then
mkdir ./scripts && touch ./scripts/firstrun cat > ./scripts/start <<\EOF #!/bin/bash ROOT_USER=${ROOT_USER:-admin} ROOT_PASS=${ROOT_PASS:-237356573} #DB user password SQL_DB=${SQL_DB:-opsmanage} DB_USER=${DB_USER:-chen} DB_PASS=${DB_PASS:-237356573} MARIADB_NEW=true run_maria() { # First install mariadb if [[ ! -d ${DATA_DIR}/mysql ]]; then
            echo "===> MariaDB not install..."
             echo "===> Initializing maria database... " mysql_install_db --user=mysql --ldata=${DATA_DIR} echo "===> System databases initialized..." # Start mariadb /usr/bin/mysqld_safe --user mysql > /dev/null 2>&1 &
       
         echo "===> Waiting for MariaDB to start..." STA=1
        while [[ STA -ne 0 ]]; do printf "."
                        sleep 3 mysql -uroot -e "status" > /dev/null 2>&1 STA=$?
                done
        echo "===> Start OK..." # 1. Create a localhost-only admin account mysql -u root -e "CREATE USER '$ROOT_USER'@'%' IDENTIFIED BY '$ROOT_PASS'" mysql -u root -e "CREATE USER '$ROOT_USER'@'localhost' IDENTIFIED BY '$ROOT_PASS'" mysql -u root -e "CREATE USER '$ROOT_USER'@'127.0.0.1' IDENTIFIED BY '$ROOT_PASS'" mysql -u root -e "GRANT ALL PRIVILEGES ON *.* TO '$DB_USER'@'%' WITH GRANT OPTION" mysql -u root -e "CREATE DATABASE $SQL_DB" mysql -u root -e "grant all privileges on $SQL_DB.* TO '$DB_USER'@'%' identified by '$DB_PASS'"  
        echo "===> Create localhost completed..." # shutdown mariadb to wait for supervisor mysqladmin -u root shutdown else
        if [[ -e ${DATA_DIR}/mysql.sock ]]; then
            rm -f ${DATA_DIR}/mysql.sock fi MARIADB_NEW=false

                echo "===> Using an existing volume of MariaDB"
        fi } # # When Startup Container script # if [[ -e /scripts/firstrun ]]; then # config mariadb run_maria rm /scripts/firstrun else # Cleanup previous mariadb sockets if [[ -e ${DATA_DIR}/mysql.sock ]]; then
                rm -f ${DATA_DIR}/mysql.sock fi
fi exec /usr/bin/mysqld_safe EOF else
echo "Dir scripts 已存在!"
fi
echo "----------mkdir----mysql-----DB----------------"
mkdir -p  /data/mysql echo "------------------run_build--Dockerfile-----------------" docker build -t python-mariadb:sql-v2 . echo "------------------run_docker-Images-Mriadb---------------------------------" docker run --name python-mariadb-v2   --privileged=true  -v /data/mysql:/var/lib/mysql   -p 3306:3306      -d  python-mariadb:sql-v2

 

 

說明: 該腳本會在當前目錄下檢測是否有dockerfile 文件 沒完創建  后又生成mariadb 配置文件 並開始 build 得mariadb  images  run 啟

重點在start.sh 該腳本內   會copy(scripts 目錄)進容器內為 容器啟動時運行腳本  初始化 mariadb 並創建 SQL 庫   ’opsmanage‘     ‘DBname’    ‘userName’   ’passwordName‘  可以在run容器時  用   -e  參數 傳進 環境變量 進行修改

並可在宿主機  ll   /data/mysql   下查看到 容器是否   有創建opsmanage庫    和有沒有運行成功!     運行時所生成得   mysql.sock 

查看一下運行狀態:

 

 

連續測試一下:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM