Die Docker-Veröffentlichungsmethode bietet viele Annehmlichkeiten für die Implementierung von DevOps (automatisierter Betrieb und Wartung, die die Konfiguration von Codeverwaltungstools wie Git-Hooks erfordert, um eine Reihe von Ereignissteuerungen wie Übermittlung, Kompilierung, Verpackung und Freigabe zu implementieren) und kann gut mit Shell-Skripten koordiniert werden. Docker-Images können durch automatische Kompilierung oder durch Importieren von Images bezogen werden. Der Titel dieses Artikels lautet: Shell-Skript erstellt Docker für halbautomatische Kompilierung, Verpackung und Freigabe, da ich es bisher nicht mit der Codeverwaltung in Verbindung gebracht habe. Shell-Skript verschiedene ImplementierungenBildimportmethode (Bilddatei rtvsweb-publish.tar): Build- und Release-Methode (erstellt durch Dockerfile): Shell Docker Build-Release-Skript-Tool Core install.sh #!/bin/bash ##Datei:rtvs.sh ##Unternehmen:cvnavi.com ##Autor:Pengjunlin echo "Aktuell ausgeführte Datei......$0" ############################################Variablendefinition################################## DOCKER_IMAGE_IS_MATCH_TAR_FILE="falsch" DOCKER_RTVSWEB_CONTAINER_NAME="rtvsweb-veröffentlichen" DOCKER_RTVSWEB_NEW_VERSION="" DOCKER_RTVSWEB_FIRST_VERSION=1 DOCKER_RTVSWEB_SECOND_VERSION=0 DOCKER_RTVSWEB_THIRD_VERSION=0 DOCKER_RTVSWEB_VERSION_TAG="" DOCKER_CONTAINER_TEMP_HOST="" DB_REDIS_CONNECTION_STRING="" DB_MYSQL_CONNECTION_STRING="" DB_MYSQL_HOST="" MASTER_LAN_IP="" SYSTEM_ALLOW_TO_SET="falsch" ############################################Funktionsdefinition######################################### Funktion init_files() { # RTVs-Verzeichnis erstellen, wenn [[ ! -d "/usr/local/rtvs" ]]; dann echo "Container-Mapping-Pfad erstellen... /usr/local/rtvs" mkdir /usr/local/rtvs fi # VersionConfig.xml kopieren (erstellen Sie beim ersten Mal eine vollständige Kopie. Bei Änderungen müssen Sie diese manuell anpassen) wenn [[ -f "./VersionConfig.xml" ]]; dann wenn [[ ! -f "/usr/local/rtvs/VersionConfig.xml" ]]; dann echo "Eine XML-Konfigurationsdatei kopieren: ./VersionConfig.xml /usr/local/rtvs/VersionConfig.xml" cp VersionConfig.xml /usr/local/rtvs/VersionConfig.xml fi anders echo "Datei ./VersionConfig.xml fehlt... Installation beenden!" Ausfahrt fi # SettingConfig.xml kopieren (erstellen Sie beim ersten Mal eine vollständige Kopie, bei Änderungen müssen Sie diese manuell anpassen) wenn [[ -f "./SettingConfig.xml" ]]; dann wenn [[ ! -f "/usr/local/rtvs/SettingConfig.xml" ]]; dann echo "Eine XML-Konfigurationsdatei kopieren: ./SettingConfig.xml /usr/local/rtvs/SettingConfig.xml" cp SettingConfig.xml /usr/local/rtvs/SettingConfig.xml fi anders echo "Datei ./SettingConfig.xml fehlt... Installation abgebrochen!" Ausfahrt fi # log4.config kopieren (erstellen Sie beim ersten Mal eine vollständige Kopie. Bei Änderungen müssen Sie diese manuell anpassen) wenn [[ -f "./log4.config" ]]; dann wenn [[ ! -f "/usr/local/rtvs/log4.config" ]]; dann echo "Eine Protokollkonfigurationsdatei kopieren: ./log4.config /usr/local/rtvs/log4.config" cp log4.config /usr/local/rtvs/log4.config fi anders echo "Datei ./log4.config fehlt... Installation beenden!" Ausfahrt fi } Funktion mysql_create_table() { wenn [[ -f "./mysql_create_table.sh" ]]; dann echo "Berechtigungen für die Datenbankskriptzuweisung …" # Fügen Sie der ausführbaren Datei Berechtigungen hinzu chmod a+x mysql_create_table.sh anders echo "Datei ./mysql_create_table.sh fehlt... Installation abgebrochen!" Ausfahrt fi # Führen Sie die Erstellung der MySQL-Datenbanktabelle aus ./mysql_create_table.sh wenn [[ $? -eq 0 ]]; dann echo "./mysql_docker_install.sh-Ausführung abgeschlossen!" anders Ausfahrt fi } Funktion docker_install() { echo "Docker prüfen …" Docker -v wenn [ $? -eq 0 ]; dann echo "Überprüft, ob Docker installiert ist!" anders echo "Docker-Umgebung installieren …" curl -sSL https://get.daocloud.io/docker | sh echo "Docker-Umgebung installieren … Installation abgeschlossen!" fi # Ein öffentliches Netzwerk erstellen == Bridge-Modus #Docker-Netzwerk erstellen Share_Network } Funktion mysql_install(){ Installationstyp=$1 wenn [[ "$install_type" == "by_local_mysql_installer" ]]; dann #Aussagen echo "Der lokale Download und die Installation von Wget werden noch nicht unterstützt, beendet!" Ausfahrt 1 fi wenn [[ "$install_type" == "by_docker_mysql_installer" ]]; dann #Aussagen docker_mysql_install fi wenn [[ "$install_type" == "by_smart_installer" ]]; dann #Aussagen wenn [[ `netstat -lanp|grep tcp|grep 3306|wc -l` == 1 ]]; dann echo "MySQL wurde lokal installiert!" # Drucken Sie die MySQL-Version aus. Echo „MySQL-Version erkannt:“ mysql --version # Führen Sie das Skript aus, um die Mysql-Datenbank mysql_create_table zu erstellen wenn [[ $? -eq 0 ]]; dann echo "Initialisierung des lokalen MySQL-Skripts abgeschlossen!" anders echo "Das lokale MySQL-Skript konnte nicht initialisiert werden!" Ausfahrt 1 fi DB_MYSQL_HOST="lokaler Host" anders docker_mysql_install fi fi } Funktion docker_mysql_install(){ echo "Docker Mysql-Umgebung installieren …" wenn [[ -f "./docker_mysql_install.sh" ]]; dann wenn [[ -f "./docker_mysql_create_table.sh" ]]; dann echo "Eine Container-Ausführungsdatei kopieren: ./docker_mysql_create_table.sh /usr/local/docker_mysql_create_table.sh" cp docker_mysql_create_table.sh /usr/local/docker_mysql_create_table.sh anders echo "Datei ./docker_mysql_create_table.sh fehlt … Installation abgebrochen!" Ausfahrt 1 fi # Fügen Sie der ausführbaren Datei chmod a+x docker_mysql_install.sh Berechtigungen hinzu # MySQL mit Docker installieren ./docker_mysql_install.sh wenn [[ $? -eq 0 ]]; dann echo "./docker_mysql_install.sh Ausführung abgeschlossen!" # 10 Sekunden schlafen echo „10 Sekunden schlafen, warten, bis Docker fertig ist …“ 10 Sekunden schlafen # Testen Sie das Drucken der MySQL-Informationen print_docker_mysql_info anders echo "Während der Ausführung von ./docker_mysql_install.sh ist ein Fehler aufgetreten und die Installation wurde beendet!" Ausfahrt 1 fi anders echo "Datei ./docker_mysql_install.sh fehlt … Installation abgebrochen!" Ausfahrt 1 fi } Funktion docker_container_ip() { DOCKER_CONTAINER_TEMP_HOST=` docker inspect --format '{{ .NetworkSettings.IPAddress }}' $1` } Funktion init_docker_master_ip(){ aus=0 für i in `ip a |grep inet[^6]|grep -E -o '([0-9]{1,3}\.){3}[0-9]{1,3}'`; mache OLD_IFS="$IFS" IFS="." arr=($i) IFS="$OLD_IFS" für s in ${arr[@]} ;mach wenn [[ $s -eq "192" ]]; dann echo "$i" MASTER_LAN_IP=$i aus=1 brechen fi Erledigt wenn [[ $out -eq 1 ]]; dann brechen fi Erledigt } Funktion print_docker_mysql_info() { echo "Skript führt Mysql-Informationsüberprüfung aus: …" wenn [[ -f "./docker_mysql_validator.sh" ]]; dann echo "Eine Container-Ausführungsdatei kopieren: ./docker_mysql_validator.sh /usr/local/docker_mysql_validator.sh" cp docker_mysql_validator.sh /usr/local/docker_mysql_validator.sh anders echo "Datei ./docker_mysql_validator.sh fehlt … Installation abgebrochen!" Ausfahrt fi # Ordnen Sie den Kopierdateipfad dem Docker-Container docker cp /usr/local/docker_mysql_validator.sh mysql5.7:/usr/local/docker_mysql_validator.sh zu. docker exec -it mysql5.7 /bin/bash -c "sh /usr/local/docker_mysql_validator.sh" wenn [[ $? -eq 0 ]]; dann echo "./docker_mysql_validator.sh Ausführung abgeschlossen!" echo "MySQL-Container-Host:" docker_container_ip mysql5.7 echo "Aktuelle mysql5.7-Instanz-IP=$DOCKER_CONTAINER_TEMP_HOST" #echo "Informationen zum MySQL-Containernetzwerk:" #Docker-Netzwerk prüfen Share_Network #echo "Informationen zum MySQL-Containerlink:" #cat /etc/hosts anders echo "Während der Ausführung von ./docker_mysql_validator.sh ist ein Fehler aufgetreten und die Installation wurde beendet!" Ausfahrt fi #link Zugriffsmethode DB_MYSQL_HOST="mysql5.7" } Funktion destroy_docker_service() { # Stoppen Sie den Container für i in [ `docker ps ` ]; wenn [[ "$i" == "rtvsweb-publish" ]]; dann echo "Versuch, den Container $DOCKER_RTVSWEB_CONTAINER_NAME zu stoppen …" Docker-Stopp $DOCKER_RTVSWEB_CONTAINER_NAME fi Erledigt # Container für i in [ `docker ps -a` ] löschen; machen wenn [[ "$i" == "rtvsweb-publish" ]]; dann echo "Versuch, den Container $DOCKER_RTVSWEB_CONTAINER_NAME zu löschen …" docker rm $DOCKER_RTVSWEB_CONTAINER_NAME fi Erledigt } Funktion docker_build_image() { #Container aufräumen (Image des historischen Builds beibehalten) Zerstörung_Docker_Service wenn [[ $? -eq 0 ]]; dann echo "Anwendungsdienstcontainer und Image wurden verarbeitet, Konfigurationsdateien wurden kopiert!" anders Ausfahrt 1 fi echo "Docker-Image erstellen...cmd:(docker build -t rtvsweb:$DOCKER_RTVSWEB_NEW_VERSION .)" docker build -t rtvsweb:$DOCKER_RTVSWEB_NEW_VERSION . # Bestimmen Sie, ob ein Image vorhanden ist, und erstellen Sie eine entsprechende Containerinstanz, wenn es für i in [`Docker-Images`] vorhanden ist. #Aussagen wenn [[ "$i" == "$DOCKER_RTVSWEB_NEW_VERSION" ]]; dann DOCKER_IMAGE_IS_MATCH_TAR_FILE="wahr" echo "Das neuste Build-Image wurde gefunden!" führen Sie Docker-Service-Image aus brechen fi Erledigt wenn [[ $DOCKER_IMAGE_IS_MATCH_TAR_FILE == "false" ]]; dann echo "Das erstellte Image entspricht nicht der neusten Version, die Installation wird beendet!" Ausfahrt 1 fi echo "Liste der Docker-Images nach dem Erstellen:" Docker-Bilder echo "Liste der aktuell laufenden Docker-Containerinstanzen:" Docker PS } Funktion run_docker_service_image() { echo "Docker-Servicecontainer wird gestartet …" :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::3s::::::333:33333333333333333333ag33333333333333333333333333333 es333333333333333333333333333333 es33 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann dann dann dann aber33333333333333333333 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 dann3 dann3 aber3 dann3 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann nichtie dasen aber aber abersossoss aberstens aberstensss aberten aber abers :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::3s::::::333:33333333333333333333ag33333333333333333333333333333 es333333333333333333333333333333 es33 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann dann dann dann aber33333333333333333333 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 dann3 dann3 aber3 dann3 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann nichtie dasen aber aber abersossoss aberstens aberstensss aberten aber abers ::::::::::: wenn [[ $DB_MYSQL_HOST == "mysql5.7" ]]; dann # ===link link mode echo "rtvsweb--Containerbetrieb---Linkmodus" docker run -it --name $DOCKER_RTVSWEB_CONTAINER_NAME --privileged=true --link mysql5.7:mysql5.7 -v /usr/local/rtvs:/MeineDaten -e MyDataPath=/MeineDaten -p 38067:80 -p 44383:443 -p 18000:18000 -p 18002:18002 -p 19700-19719:19700-19719 -p 30888-30889:30888-30889 -d rtvsweb:$DOCKER_RTVSWEB_NEW_VERSION anders # ===Normalmodus echo "rtvsweb--Containerbetrieb---Normalmodus" docker run -it --name $DOCKER_RTVSWEB_CONTAINER_NAME --privileged=true -v /usr/local/rtvs:/MeineDaten -e MeinDatenpfad=/MeineDaten -p 38067:80 -p 44383:443 -p 18000:18000 -p 18002:18002 -p 19700-19719:19700-19719 -p 30888-30889:30888-30889 -d rtvsweb:$DOCKER_RTVSWEB_NEW_VERSION fi } ##########################Tools und Prozessanpassung################################### Funktion editXml() { Wert = `echo $ {@:3}` echo "XML-Datei wird geändert: $1…" echo "XML-Datei ändern: [0]=$1, [1]=$2, [2]=$val" echo "XML-Datei $2 Tag-Wert=$val" sed -i "s/<$2>.*<\/$2>/<$2>${val}<\/$2></g" $1 } Funktion init_mysql_conn() { wenn [[ "$DB_MYSQL_HOST" == "localhost" ]]; dann mysql="Datenbank=Dateicache;Datenquelle=$MASTER_LAN_IP;Port=3366;Benutzer-ID=rtvsweb;Passwort=rtvs2018;Zeichensatz=utf8;Pooling=true" sed -i "s/<MysqlConnectionString>.*<\/MysqlConnectionString>/<MysqlConnectionString>$mysql<\/MysqlConnectionString>/g" /usr/local/rtvs/SettingConfig.xml DB_MYSQL_CONNECTION_STRING=`grep -E -o -e '<MysqlConnectionString>.+</MysqlConnectionString>' /usr/local/rtvs/SettingConfig.xml | sed ‚s/<MysqlConnectionString>//g‘|sed ‚s/<\/MysqlConnectionString>//g‘` anders mysql="Datenbank=filecache;Datenquelle=mysql5.7;Port=3306;Benutzer-ID=rtvsweb;Passwort=rtvs2018;Zeichensatz=utf8;Pooling=true" sed -i "s/<MysqlConnectionString>.*<\/MysqlConnectionString>/<MysqlConnectionString>$mysql<\/MysqlConnectionString>/g" /usr/local/rtvs/SettingConfig.xml DB_MYSQL_CONNECTION_STRING=`grep -E -o -e '<MysqlConnectionString>.+</MysqlConnectionString>' /usr/local/rtvs/SettingConfig.xml | sed ‚s/<MysqlConnectionString>//g‘|sed ‚s/<\/MysqlConnectionString>//g‘` fi } Funktion editSpecificConfig() { init_mysql_conn echo "Informationen zu /usr/local/rtvs/SettingConfig.xml abrufen …" cat /usr/local/rtvs/SettingConfig.xml # Bestimmen Sie, ob es gesetzt werden kann, wenn [[ "$SYSTEM_ALLOW_TO_SET" == "true" ]]; dann read -p ">>>Möchten Sie die Verbindungszeichenfolge für die Redis-Konfiguration ändern? j/n: " ans echo "$ans" wenn [[ "$ans" == "y" ]]; dann read -p "Bitte geben Sie die Verbindungszeichenfolge für die Redis-Konfiguration ein:" redis echo "Neue Redis-Verbindungszeichenfolge: $redis" sed -i "s/<RedisExchangeHosts>.*<\/RedisExchangeHosts>/<RedisExchangeHosts>$redis<\/RedisExchangeHosts>/g" /usr/local/rtvs/SettingConfig.xml DB_REDIS_CONNECTION_STRING=`grep -E -o -e '<RedisExchangeHosts>.+</RedisExchangeHosts>' /usr/local/rtvs/SettingConfig.xml | sed ‚s/<RedisExchangeHosts>//g‘|sed ‚s/<\/RedisExchangeHosts>//g‘` echo "Holen Sie sich die geänderte Verbindungszeichenfolge für die Redis-Konfiguration ... RedisExchangeHosts=$DB_REDIS_CONNECTION_STRING" fi read -p ">>>Möchten Sie die Verbindungszeichenfolge für die Mysql-Konfiguration ändern? j/n: " ans echo "$ans" wenn [[ "$ans" == "y" ]]; dann read -p "Bitte geben Sie die Mysql-Konfigurationsverbindungszeichenfolge ein:" mysql echo "Neue Mysql-Verbindungszeichenfolge: $mysql" sed -i "s/<MysqlConnectionString>.*<\/MysqlConnectionString>/<MysqlConnectionString>$mysql<\/MysqlConnectionString>/g" /usr/local/rtvs/SettingConfig.xml DB_MYSQL_CONNECTION_STRING=`grep -E -o -e '<MysqlConnectionString>.+</MysqlConnectionString>' /usr/local/rtvs/SettingConfig.xml | sed ‚s/<MysqlConnectionString>//g‘|sed ‚s/<\/MysqlConnectionString>//g‘` echo "Holen Sie sich die geänderte Mysql-Konfigurationsverbindungszeichenfolge ...MysqlConnectionString=$DB_MYSQL_CONNECTION_STRING" fi fi } Funktion remoteRedisAndMysqlConfig() { echo "Informationen zu /usr/local/rtvs/SettingConfig.xml abrufen …" cat /usr/local/rtvs/SettingConfig.xml # Setze die Redis-Verbindungszeichenfolge read -p "Möchtest du die Verbindungszeichenfolge für die Redis-Konfiguration ändern? j/n: " ans echo "$ans" wenn [[ "$ans" == "y" ]]; dann read -p "Bitte geben Sie die Redis-Verbindungszeichenfolge ein:" redis echo "Neue Redis-Verbindungszeichenfolge: $redis" sed -i "s/<RedisExchangeHosts>.*<\/RedisExchangeHosts>/<RedisExchangeHosts>$redis<\/RedisExchangeHosts>/g" /usr/local/rtvs/SettingConfig.xml DB_REDIS_CONNECTION_STRING=`grep -E -o -e '<RedisExchangeHosts>.+</RedisExchangeHosts>' /usr/local/rtvs/SettingConfig.xml | sed ‚s/<RedisExchangeHosts>//g‘|sed ‚s/<\/RedisExchangeHosts>//g‘` echo "Holen Sie sich die geänderte Verbindungszeichenfolge für die Redis-Konfiguration ... RedisExchangeHosts=$DB_REDIS_CONNECTION_STRING" fi read -p "Möchten Sie die Verbindungszeichenfolge für die Mysql-Konfiguration ändern? j/n: " ans echo "$ans" wenn [[ "$ans" == "y" ]]; dann read -p "Bitte geben Sie die Mysql-Verbindungszeichenfolge ein:" mysql echo "Neue Mysql-Verbindungszeichenfolge: $mysql" sed -i "s/<MysqlConnectionString>.*<\/MysqlConnectionString>/<MysqlConnectionString>$mysql<\/MysqlConnectionString>/g" /usr/local/rtvs/SettingConfig.xml DB_MYSQL_CONNECTION_STRING=`grep -E -o -e '<MysqlConnectionString>.+</MysqlConnectionString>' /usr/local/rtvs/SettingConfig.xml | sed ‚s/<MysqlConnectionString>//g‘|sed ‚s/<\/MysqlConnectionString>//g‘` echo "Holen Sie sich die geänderte Mysql-Konfigurationsverbindungszeichenfolge ...MysqlConnectionString=$DB_MYSQL_CONNECTION_STRING" fi } Funktion Hilfe() { echo "************************************************" echo "************ Beschreibung der aufrufenden Methode************" echo "************************************************" echo "Zeigen Sie die Kernkonfigurationsdatei an: cat ./SettingConfig.xml" echo "Hilfe-Methodenbeschreibung: sh ./install.sh help" echo "Redis- und MySQL-Verbindungszeichenfolgen ändern: sh ./install.sh editXml [XMLFilePath] [tag] ['value'] " echo "************************************************" echo "************ Schnelle benutzerdefinierte Installation*************" echo "************************************************" echo "1. Lokale MySQL-Installation ausführen (wget-Download-Dateiinstallation...zeitaufwändig): sh ./install.sh by_local_mysql_installer" echo "2. Führen Sie die Docker Mysql-Installation aus: sh ./install.sh by_docker_mysql_installer" echo "3. Smart Detection bestimmt die Installationsmethode von MySQL (wenn MySQL bereits auf dem lokalen Computer installiert ist, verwenden Sie es direkt): sh ./install.sh by_smart_installer" echo "4. Für die vereinfachte Installation sind nur die Redis- und MySQL-Verbindungszeichenfolgen erforderlich (sehr einfache Methode): sh ./install.sh by_simple_installer" echo "Beschreibung:\r Die oben genannten 4 Methoden beinhalten bereits die Installation der Docker-Anwendung!" } Funktion abgeschlossen() { echo "*********************Installationsergebnis:*****************" # Bridge Bridge-Modus #echo "Netzwerkinstanz, share_network-bezogene Containerinformationen:" #Docker-Netzwerk prüfen Share_Network version_step=1 # Notieren Sie die nächste Versionsnummer, wenn [[ "$DOCKER_RTVSWEB_VERSION_TAG" == "VersionFirst" ]]; dann DOCKER_RTVSWEB_FIRST_VERSION=$((DOCKER_RTVSWEB_FIRST_VERSION+Versionsschritt)) sed -i "s/<VersionFirst>.*<\/VersionFirst>/<VersionFirst>$DOCKER_RTVSWEB_FIRST_VERSION<\/VersionFirst>/g" /usr/local/rtvs/VersionConfig.xml sed -i "s/<VersionSecond>.*<\/VersionSecond>/<VersionSecond>0<\/VersionSecond>/g" /usr/local/rtvs/VersionConfig.xml sed -i "s/<VersionThird>.*<\/VersionThird>/<VersionThird>0<\/VersionThird>/g" /usr/local/rtvs/VersionConfig.xml fi wenn [[ "$DOCKER_RTVSWEB_VERSION_TAG" == "VersionSecond" ]]; dann DOCKER_RTVSWEB_SECOND_VERSION=$((DOCKER_RTVSWEB_SECOND_VERSION+Versionsschritt)) sed -i "s/<Zweite Version>.*<\/Zweite Version>/<Zweite Version>$DOCKER_RTVSWEB_SECOND_VERSION<\/Zweite Version>/g" /usr/local/rtvs/VersionConfig.xml sed -i "s/<VersionThird>.*<\/VersionThird>/<VersionThird>0<\/VersionThird>/g" /usr/local/rtvs/VersionConfig.xml fi wenn [[ "$DOCKER_RTVSWEB_VERSION_TAG" == "VersionThird" ]]; dann DOCKER_RTVSWEB_THIRD_VERSION=$((DOCKER_RTVSWEB_THIRD_VERSION+Versionsschritt)) sed -i "s/<VersionThird>.*<\/VersionThird>/<VersionThird>$DOCKER_RTVSWEB_THIRD_VERSION<\/VersionThird>/g" /usr/local/rtvs/VersionConfig.xml fi VIDEO_CACHE_PATH=`grep -E -o -e '<VideoCachePath>.+</VideoCachePath>' /usr/local/rtvs/SettingConfig.xml | sed ‚s/<VideoCachePath>//g‘|sed ‚s/<\/VideoCachePath>//g‘` DB_REDIS_CONNECTION_STRING=`grep -E -o -e '<RedisExchangeHosts>.+</RedisExchangeHosts>' /usr/local/rtvs/SettingConfig.xml | sed ‚s/<RedisExchangeHosts>//g‘|sed ‚s/<\/RedisExchangeHosts>//g‘` DB_MYSQL_CONNECTION_STRING=`grep -E -o -e '<MysqlConnectionString>.+</MysqlConnectionString>' /usr/local/rtvs/SettingConfig.xml | sed ‚s/<MysqlConnectionString>//g‘|sed ‚s/<\/MysqlConnectionString>//g‘` echo "Redis-Verbindungszeichenfolge: $DB_REDIS_CONNECTION_STRING" echo "Mysql-Verbindungszeichenfolge: $DB_MYSQL_CONNECTION_STRING" echo "Standard-Video-Cache-Verzeichnis: $VIDEO_CACHE_PATH" echo "Containerinstanzen ausführen:" Docker PS echo "Die dem Container entsprechende IP-Adresse:" docker_container_ip mysql5.7 wenn [[ "$DOCKER_CONTAINER_TEMP_HOST" != "" ]]; dann echo "mysql5.7 ---------------------$DOCKER_CONTAINER_TEMP_HOST" fi docker_container_ip $DOCKER_RTVSWEB_CONTAINER_NAME echo "$DOCKER_RTVSWEB_CONTAINER_NAME ---------------------$DOCKER_CONTAINER_TEMP_HOST" echo "RTVs-Zugriff überprüfen: curl http://cvtsp.com:38067/" echo "*********************Installation abgeschlossen!*****************" } Funktion version_management() { DOCKER_RTVSWEB_FIRST_VERSION=`grep -E -o -e '<VersionFirst>.+</VersionFirst>' /usr/local/rtvs/VersionConfig.xml | sed ‚s/<VersionFirst>//g‘|sed ‚s/<\/VersionFirst>//g‘` DOCKER_RTVSWEB_SECOND_VERSION=`grep -E -o -e '<Second-Version>.+</Second>' /usr/local/rtvs/VersionConfig.xml | sed 's/<Second-Version>//g'|sed 's/<\/VersionSecond>//g'` DOCKER_RTVSWEB_THIRD_VERSION=`grep -E -o -e '<VersionThird>.+</VersionThird>' /usr/local/rtvs/VersionConfig.xml | sed ‚s/<VersionThird>//g‘|sed ‚s/<\/VersionThird>//g‘` DOCKER_RTVSWEB_VERSION_TAG=`grep -E -o -e '<UpgradeTag>.+</UpgradeTag>' /usr/local/rtvs/VersionConfig.xml | sed ‚s/<UpgradeTag>//g‘|sed ‚s/<\/UpgradeTag>//g‘` DOCKER_RTVSWEB_NEW_VERSION="$DOCKER_RTVSWEB_FIRST_VERSION.$DOCKER_RTVSWEB_SECOND_VERSION.$DOCKER_RTVSWEB_THIRD_VERSION" echo "Aktuelle rtvsweb-Version: $DOCKER_RTVSWEB_NEW_VERSION" echo "Aktuelles Upgrade-Format für die rtvsweb-Version: $DOCKER_RTVSWEB_VERSION_TAG" } Funktion by_local_mysql_installer() { # Docker-Installation docker_install # Mysql-Installation und ihre Skripterstellung mysql_install "by_local_mysql_installer" # Bild erstellenwenn [[ $? -eq 0 ]]; dann Docker-Build-Image wenn [[ $? -eq 0 ]]; dann echo "Image erfolgreich erstellt!" anders echo "Imageerstellung fehlgeschlagen!" Ausfahrt fi anders Ausfahrt fi # Ändern Sie den Pfad und die Datenquelle, die von imageeditSpecificConfig verwendet werden # Ausgabe nach Abschluss abgeschlossen } Funktion by_docker_mysql_installer() { # Docker-Installation docker_install # Mysql-Installation und ihre Skripterstellungmysql_install "by_docker_mysql_installer" # Bild erstellenwenn [[ $? -eq 0 ]]; dann Docker-Build-Image wenn [[ $? -eq 0 ]]; dann echo "Image erfolgreich erstellt!" anders echo "Imageerstellung fehlgeschlagen!" Ausfahrt fi anders Ausfahrt fi # Ändern Sie den Pfad und die Datenquelle, die von imageeditSpecificConfig verwendet werden # Ausgabe nach Abschluss abgeschlossen } Funktion by_smart_installer() { # Docker-Installation docker_install # Mysql-Installation und ihre Skripterstellung mysql_install "by_smart_installer" # Bild erstellenwenn [[ $? -eq 0 ]]; dann Docker-Build-Image wenn [[ $? -eq 0 ]]; dann echo "Image erfolgreich erstellt!" anders echo "Imageerstellung fehlgeschlagen!" Ausfahrt fi anders Ausfahrt fi # Ändern Sie den Pfad und die Datenquelle, die von imageeditSpecificConfig verwendet werden # Ausgabe nach Abschluss abgeschlossen } Funktion by_simple_installer() { # Docker-Installation docker_install # Image erstellen docker_build_image wenn [[ $? -eq 0 ]]; dann echo "Image erfolgreich erstellt!" anders echo "Imageerstellung fehlgeschlagen!" Ausfahrt fi # Ändern Sie den Pfad und die Datenquelle remoteRedisAndMysqlConfig, die vom Image verwendet werden # Ausgabe nach Abschluss abgeschlossen } wenn [[ $# -gt 0 ]]; dann echo "Überprüfen Sie, ob für die Installation erforderliche Dateien vorhanden sind …" init_files wenn [[ $? -eq 0 ]]; dann echo "Die Datei zur Installation des Docker-Dienstes ist vorhanden, Überprüfung bestanden!" anders echo "Die Datei zur Installation des Docker-Dienstes fehlt und die Installation wurde abgebrochen!" Ausfahrt fi echo "rtvsweb-Versionsprüfung …" version_management echo "Holen Sie sich die lokale LAN-IP-Adresse …" init_docker_master_ip echo "Lokale IP-Adresse...MASTER_LAN_IP=$MASTER_LAN_IP" #Aussagen wenn [[ "$1" == "by_local_mysql_installer" ]]; dann #Aussagen von_local_mysql_installer fi wenn [[ "$1" == "by_docker_mysql_installer" ]]; dann #Aussagen von_docker_mysql_installer fi wenn [[ "$1" == "by_smart_installer" ]]; dann #Aussagen von_smart_installer fi wenn [[ "$1" == "by_simple_installer" ]]; dann #Aussagen von_simple_installer fi wenn [[ "$1" == "editXml" ]]; dann wenn [[ $# -eq 4 ]]; dann #Aussagen XML bearbeiten $2 $3 $4 anders echo "editXml-Parameternummer stimmt nicht überein!" fi fi wenn [[ "$1" == "Hilfe" ]]; dann #Aussagen helfen fi anders helfen fi Allgemeine Ideen zur Designumsetzung1. Vorbereitung und Installation der Docker-Umgebung 2. Vorbereitung und Installation der MySQL-Umgebung 3. Docker-Wissen: Erstellen und Ausführen 4. Versionsverwaltung von Docker-Images 5. Netzwerkzugriff während der Toleranz: --link 6. Bildverpackungsverlauf 7. Servicebetriebswirkung Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur. Das könnte Sie auch interessieren:
|
<<: Analyse der vernachlässigten DOCTYPE-Beschreibung
>>: Zusammenfassung mehrerer Methoden zur Implementierung der vertikalen Zentrierung mit CSS
Einführung: Alle Browser verfügen über Standardst...
Vorwort: Die MySQL-Master-Slave-Architektur dürft...
Beim Erstellen von Webseiten tritt häufig das Pro...
Da immer mehr Entwickler SASS verwenden, müssen w...
Inhaltsverzeichnis Wie erstelle ich einen Pod? We...
Ich habe vor Kurzem VMware Horizon bereitgestellt...
Trotz Props und Events müssen Sie manchmal immer ...
Dieses Beispiel nimmt die Installation von Python...
Inhaltsverzeichnis Was sind Hooks? Klassenkompone...
Inhaltsverzeichnis 1. Daten vorbereiten Erstellen...
1.1 Aufbau der Verzeichnisstruktur Dieser Vorgang...
50 Zeilen Code zum Ändern von 5 Hautfarben, einsc...
Inhaltsverzeichnis Zusammenfassung Einfaches Beis...
1 Was ist MVCC Der vollständige Name von MVCC lau...
Problembeschreibung: Der Inhalt der Datei 11 laut...