From b4abb82fc5e7693109220c5b04d83782baecf85b Mon Sep 17 00:00:00 2001 From: zhang_xubo <2578876417@qq.com> Date: Tue, 14 Mar 2023 14:31:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Ddocker=E5=87=A0=E4=B8=AA?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{3.0.0 => 5.0.0}/dockerfile_amd | 6 +- .../{3.0.0 => 5.0.0}/dockerfile_arm | 6 +- .../{3.0.0 => 5.0.0}/entrypoint.sh | 5 - .../dockerfiles/{3.0.0 => 5.0.0}/gosu-amd64 | Bin .../dockerfiles/{3.0.0 => 5.0.0}/gosu-arm64 | Bin .../{3.0.0 => 5.0.0}/openEuler_aarch64.repo | 0 .../{3.0.0 => 5.0.0}/sha256_file_amd64 | 0 .../{3.0.0 => 5.0.0}/sha256_file_arm64 | 0 docker/dockerfiles/buildDockerImage.sh | 2 +- docker/dockerfiles/create_master_slave.sh | 224 +++++++++--------- 10 files changed, 119 insertions(+), 124 deletions(-) rename docker/dockerfiles/{3.0.0 => 5.0.0}/dockerfile_amd (87%) rename docker/dockerfiles/{3.0.0 => 5.0.0}/dockerfile_arm (87%) rename docker/dockerfiles/{3.0.0 => 5.0.0}/entrypoint.sh (98%) rename docker/dockerfiles/{3.0.0 => 5.0.0}/gosu-amd64 (100%) rename docker/dockerfiles/{3.0.0 => 5.0.0}/gosu-arm64 (100%) rename docker/dockerfiles/{3.0.0 => 5.0.0}/openEuler_aarch64.repo (100%) rename docker/dockerfiles/{3.0.0 => 5.0.0}/sha256_file_amd64 (100%) rename docker/dockerfiles/{3.0.0 => 5.0.0}/sha256_file_arm64 (100%) diff --git a/docker/dockerfiles/3.0.0/dockerfile_amd b/docker/dockerfiles/5.0.0/dockerfile_amd similarity index 87% rename from docker/dockerfiles/3.0.0/dockerfile_amd rename to docker/dockerfiles/5.0.0/dockerfile_amd index b1f21adb9..56458181f 100644 --- a/docker/dockerfiles/3.0.0/dockerfile_amd +++ b/docker/dockerfiles/5.0.0/dockerfile_amd @@ -1,6 +1,6 @@ FROM centos:7.6.1810 -COPY openGauss-3.0.0-CentOS-64bit.tar.bz2 . +COPY openGauss-5.0.0-CentOS-64bit.tar.bz2 . COPY gosu-amd64 /usr/local/bin/gosu ENV LANG en_US.utf8 @@ -15,10 +15,10 @@ RUN set -eux; \ mkdir -p /usr/local/opengauss && \ mkdir -p /var/run/opengauss && \ mkdir /docker-entrypoint-initdb.d && \ - tar -jxf openGauss-3.0.0-CentOS-64bit.tar.bz2 -C /usr/local/opengauss && \ + tar -jxf openGauss-5.0.0-CentOS-64bit.tar.bz2 -C /usr/local/opengauss && \ chown -R omm:omm /var/run/opengauss && chown -R omm:omm /usr/local/opengauss && chown -R omm:omm /var/lib/opengauss && chown -R omm:omm /docker-entrypoint-initdb.d && \ chmod 2777 /var/run/opengauss && \ - rm -rf openGauss-3.0.0-CentOS-64bit.tar.bz2 && yum clean all + rm -rf openGauss-5.0.0-CentOS-64bit.tar.bz2 && yum clean all RUN set -eux; \ echo "export GAUSSHOME=/usr/local/opengauss" >> /home/omm/.bashrc && \ diff --git a/docker/dockerfiles/3.0.0/dockerfile_arm b/docker/dockerfiles/5.0.0/dockerfile_arm similarity index 87% rename from docker/dockerfiles/3.0.0/dockerfile_arm rename to docker/dockerfiles/5.0.0/dockerfile_arm index d5f18f70a..d99dc45a4 100644 --- a/docker/dockerfiles/3.0.0/dockerfile_arm +++ b/docker/dockerfiles/5.0.0/dockerfile_arm @@ -1,6 +1,6 @@ FROM openeuler-20.03-lts:latest -COPY openGauss-3.0.0-openEuler-64bit.tar.bz2 . +COPY openGauss-5.0.0-openEuler-64bit.tar.bz2 . COPY gosu-arm64 /usr/local/bin/gosu COPY openEuler_aarch64.repo /etc/yum.repos.d/openEuler_aarch64.repo ENV LANG en_US.utf8 @@ -15,10 +15,10 @@ RUN set -eux; \ mkdir -p /usr/local/opengauss && \ mkdir -p /var/run/opengauss && \ mkdir /docker-entrypoint-initdb.d && \ - tar -jxf openGauss-3.0.0-openEuler-64bit.tar.bz2 -C /usr/local/opengauss && \ + tar -jxf openGauss-5.0.0-openEuler-64bit.tar.bz2 -C /usr/local/opengauss && \ chown -R omm:omm /var/run/opengauss && chown -R omm:omm /usr/local/opengauss && chown -R omm:omm /var/lib/opengauss && chown -R omm:omm /docker-entrypoint-initdb.d && \ chmod 2777 /var/run/opengauss && \ - rm -rf openGauss-3.0.0-openEuler-64bit.tar.bz2 && yum clean all + rm -rf openGauss-5.0.0-openEuler-64bit.tar.bz2 && yum clean all RUN set -eux; \ echo "export GAUSSHOME=/usr/local/opengauss" >> /home/omm/.bashrc && \ diff --git a/docker/dockerfiles/3.0.0/entrypoint.sh b/docker/dockerfiles/5.0.0/entrypoint.sh similarity index 98% rename from docker/dockerfiles/3.0.0/entrypoint.sh rename to docker/dockerfiles/5.0.0/entrypoint.sh index 1b6feb70e..7aab6a49a 100644 --- a/docker/dockerfiles/3.0.0/entrypoint.sh +++ b/docker/dockerfiles/5.0.0/entrypoint.sh @@ -308,13 +308,8 @@ docker_temp_server_start() { shift fi - # internal start of server in order to allow setup using gsql client - # does not listen on external TCP/IP and waits until start finishes - set -- "$@" -c "listen_addresses='*'" -p "${PGPORT:-5432}" - PGUSER="${PGUSER:-$GS_USER}" \ gs_ctl -D "$PGDATA" \ - -o "$(printf '%q ' "$@")" \ -w start } diff --git a/docker/dockerfiles/3.0.0/gosu-amd64 b/docker/dockerfiles/5.0.0/gosu-amd64 similarity index 100% rename from docker/dockerfiles/3.0.0/gosu-amd64 rename to docker/dockerfiles/5.0.0/gosu-amd64 diff --git a/docker/dockerfiles/3.0.0/gosu-arm64 b/docker/dockerfiles/5.0.0/gosu-arm64 similarity index 100% rename from docker/dockerfiles/3.0.0/gosu-arm64 rename to docker/dockerfiles/5.0.0/gosu-arm64 diff --git a/docker/dockerfiles/3.0.0/openEuler_aarch64.repo b/docker/dockerfiles/5.0.0/openEuler_aarch64.repo similarity index 100% rename from docker/dockerfiles/3.0.0/openEuler_aarch64.repo rename to docker/dockerfiles/5.0.0/openEuler_aarch64.repo diff --git a/docker/dockerfiles/3.0.0/sha256_file_amd64 b/docker/dockerfiles/5.0.0/sha256_file_amd64 similarity index 100% rename from docker/dockerfiles/3.0.0/sha256_file_amd64 rename to docker/dockerfiles/5.0.0/sha256_file_amd64 diff --git a/docker/dockerfiles/3.0.0/sha256_file_arm64 b/docker/dockerfiles/5.0.0/sha256_file_arm64 similarity index 100% rename from docker/dockerfiles/3.0.0/sha256_file_arm64 rename to docker/dockerfiles/5.0.0/sha256_file_arm64 diff --git a/docker/dockerfiles/buildDockerImage.sh b/docker/dockerfiles/buildDockerImage.sh index 0ba36a429..9c8b84cb8 100644 --- a/docker/dockerfiles/buildDockerImage.sh +++ b/docker/dockerfiles/buildDockerImage.sh @@ -84,7 +84,7 @@ check_docker_version() { ############## # Parameters -VERSION="1.0.0" +VERSION="5.0.0" SKIPCHECKSUM=0 DOCKEROPS="" MIN_DOCKER_VERSION="17.09" diff --git a/docker/dockerfiles/create_master_slave.sh b/docker/dockerfiles/create_master_slave.sh index b569e2595..c72a7a498 100644 --- a/docker/dockerfiles/create_master_slave.sh +++ b/docker/dockerfiles/create_master_slave.sh @@ -1,112 +1,112 @@ -#!/bin/bash -# create master and slave -# Copyright (c) Huawei Technologies Co., Ltd. 2020-2028. All rights reserved. -# -#openGauss is licensed under Mulan PSL v2. -#You can use this software according to the terms and conditions of the Mulan PSL v2. -#You may obtain a copy of Mulan PSL v2 at: -# -# http://license.coscl.org.cn/MulanPSL2 -# -# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, -# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, -# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. -# See the Mulan PSL v2 for more details. -#------------------------------------------------------------------------- -# -# create_master_slave.sh -# create master and slave -# -# IDENTIFICATION -# GaussDBKernel/server/docker/dockerfiles/create_master_slave.sh -# -#------------------------------------------------------------------------- - -#set OG_SUBNET,GS_PASSWORD,MASTER_IP,SLAVE_1_IP,MASTER_HOST_PORT,MASTER_LOCAL_PORT,SLAVE_1_HOST_PORT,SLAVE_1_LOCAL_PORT,MASTER_NODENAME,SLAVE_NODENAME - -read -p "Please input OG_SUBNET (容器所在网段) [172.11.0.0/24]: " OG_SUBNET -OG_SUBNET=${OG_SUBNET:-172.11.0.0/24} -echo "OG_SUBNET set $OG_SUBNET" - -read -p "Please input GS_PASSWORD (定义数据库密码)[Enmo@123]: " GS_PASSWORD -GS_PASSWORD=${GS_PASSWORD:-Enmo@123} -echo "GS_PASSWORD set $GS_PASSWORD" - -read -p "Please input MASTER_IP (主库IP)[172.11.0.101]: " MASTER_IP -MASTER_IP=${MASTER_IP:-172.11.0.101} -echo "MASTER_IP set $MASTER_IP" - -read -p "Please input SLAVE_1_IP (备库IP)[172.11.0.102]: " SLAVE_1_IP -SLAVE_1_IP=${SLAVE_1_IP:-172.11.0.102} -echo "SLAVE_1_IP set $SLAVE_1_IP" - -read -p "Please input MASTER_HOST_PORT (主库数据库服务端口)[5432]: " MASTER_HOST_PORT -MASTER_HOST_PORT=${MASTER_HOST_PORT:-5432} -echo "MASTER_HOST_PORT set $MASTER_HOST_PORT" - -read -p "Please input MASTER_LOCAL_PORT (主库通信端口)[5434]: " MASTER_LOCAL_PORT -MASTER_LOCAL_PORT=${MASTER_LOCAL_PORT:-5434} -echo "MASTER_LOCAL_PORT set $MASTER_LOCAL_PORT" - -read -p "Please input SLAVE_1_HOST_PORT (备库数据库服务端口)[6432]: " SLAVE_1_HOST_PORT -SLAVE_1_HOST_PORT=${SLAVE_1_HOST_PORT:-6432} -echo "SLAVE_1_HOST_PORT set $SLAVE_1_HOST_PORT" - -read -p "Please input SLAVE_1_LOCAL_PORT (备库通信端口)[6434]: " SLAVE_1_LOCAL_PORT -SLAVE_1_LOCAL_PORT=${SLAVE_1_LOCAL_PORT:-6434} -echo "SLAVE_1_LOCAL_PORT set $SLAVE_1_LOCAL_PORT" - -read -p "Please input MASTER_NODENAME [opengauss_master]: " MASTER_NODENAME -MASTER_NODENAME=${MASTER_NODENAME:-opengauss_master} -echo "MASTER_NODENAME set $MASTER_NODENAME" - -read -p "Please input SLAVE_NODENAME [opengauss_slave1]: " SLAVE_NODENAME -SLAVE_NODENAME=${SLAVE_NODENAME:-opengauss_slave1} -echo "SLAVE_NODENAME set $SLAVE_NODENAME" - -read -p "Please input openGauss VERSION [1.0.1]: " VERSION -VERSION=${VERSION:-1.0.1} -echo "openGauss VERSION set $VERSION" - -echo "starting " - -docker network create --subnet=$OG_SUBNET opengaussnetwork \ -|| { - echo "" - echo "ERROR: OpenGauss Database Network was NOT successfully created." - echo "HINT: opengaussnetwork Maybe Already Exsist Please Execute 'docker network rm opengaussnetwork' " - exit 1 -} -echo "OpenGauss Database Network Created." - -docker run --network opengaussnetwork --ip $MASTER_IP --privileged=true \ ---name $MASTER_NODENAME -h $MASTER_NODENAME -p $MASTER_HOST_PORT:$MASTER_HOST_PORT -d \ --e GS_PORT=$MASTER_HOST_PORT \ --e OG_SUBNET=$OG_SUBNET \ --e GS_PASSWORD=$GS_PASSWORD \ --e NODE_NAME=$MASTER_NODENAME \ --e REPL_CONN_INFO="replconninfo1 = 'localhost=$MASTER_IP localport=$MASTER_LOCAL_PORT localservice=$MASTER_HOST_PORT remotehost=$SLAVE_1_IP remoteport=$SLAVE_1_LOCAL_PORT remoteservice=$SLAVE_1_HOST_PORT'\n" \ -opengauss:$VERSION -M primary \ -|| { - echo "" - echo "ERROR: OpenGauss Database Master Docker Container was NOT successfully created." - exit 1 -} -echo "OpenGauss Database Master Docker Container created." - -sleep 30s - -docker run --network opengaussnetwork --ip $SLAVE_1_IP --privileged=true \ ---name $SLAVE_NODENAME -h $SLAVE_NODENAME -p $SLAVE_1_HOST_PORT:$SLAVE_1_HOST_PORT -d \ --e GS_PORT=$SLAVE_1_HOST_PORT \ --e OG_SUBNET=$OG_SUBNET \ --e GS_PASSWORD=$GS_PASSWORD \ --e NODE_NAME=$SLAVE_NODENAME \ --e REPL_CONN_INFO="replconninfo1 = 'localhost=$SLAVE_1_IP localport=$SLAVE_1_LOCAL_PORT localservice=$SLAVE_1_HOST_PORT remotehost=$MASTER_IP remoteport=$MASTER_LOCAL_PORT remoteservice=$MASTER_HOST_PORT'\n" \ -opengauss:$VERSION -M standby \ -|| { - echo "" - echo "ERROR: OpenGauss Database Slave1 Docker Container was NOT successfully created." - exit 1 -} -echo "OpenGauss Database Slave1 Docker Container created." +#!/bin/bash +# create master and slave +# Copyright (c) Huawei Technologies Co., Ltd. 2020-2028. All rights reserved. +# +#openGauss is licensed under Mulan PSL v2. +#You can use this software according to the terms and conditions of the Mulan PSL v2. +#You may obtain a copy of Mulan PSL v2 at: +# +# http://license.coscl.org.cn/MulanPSL2 +# +# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, +# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, +# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. +# See the Mulan PSL v2 for more details. +#------------------------------------------------------------------------- +# +# create_master_slave.sh +# create master and slave +# +# IDENTIFICATION +# GaussDBKernel/server/docker/dockerfiles/create_master_slave.sh +# +#------------------------------------------------------------------------- + +#set OG_SUBNET,GS_PASSWORD,MASTER_IP,SLAVE_1_IP,MASTER_HOST_PORT,MASTER_LOCAL_PORT,SLAVE_1_HOST_PORT,SLAVE_1_LOCAL_PORT,MASTER_NODENAME,SLAVE_NODENAME + +read -p "Please input OG_SUBNET (容器所在网段) [172.11.0.0/24]: " OG_SUBNET +OG_SUBNET=${OG_SUBNET:-172.11.0.0/24} +echo "OG_SUBNET set $OG_SUBNET" + +read -p "Please input GS_PASSWORD (定义数据库密码)[Enmo@123]: " GS_PASSWORD +GS_PASSWORD=${GS_PASSWORD:-Enmo@123} +echo "GS_PASSWORD set $GS_PASSWORD" + +read -p "Please input MASTER_IP (主库IP)[172.11.0.101]: " MASTER_IP +MASTER_IP=${MASTER_IP:-172.11.0.101} +echo "MASTER_IP set $MASTER_IP" + +read -p "Please input SLAVE_1_IP (备库IP)[172.11.0.102]: " SLAVE_1_IP +SLAVE_1_IP=${SLAVE_1_IP:-172.11.0.102} +echo "SLAVE_1_IP set $SLAVE_1_IP" + +read -p "Please input MASTER_HOST_PORT (主库数据库服务端口)[5432]: " MASTER_HOST_PORT +MASTER_HOST_PORT=${MASTER_HOST_PORT:-5432} +echo "MASTER_HOST_PORT set $MASTER_HOST_PORT" + +read -p "Please input MASTER_LOCAL_PORT (主库通信端口)[5434]: " MASTER_LOCAL_PORT +MASTER_LOCAL_PORT=${MASTER_LOCAL_PORT:-5434} +echo "MASTER_LOCAL_PORT set $MASTER_LOCAL_PORT" + +read -p "Please input SLAVE_1_HOST_PORT (备库数据库服务端口)[6432]: " SLAVE_1_HOST_PORT +SLAVE_1_HOST_PORT=${SLAVE_1_HOST_PORT:-6432} +echo "SLAVE_1_HOST_PORT set $SLAVE_1_HOST_PORT" + +read -p "Please input SLAVE_1_LOCAL_PORT (备库通信端口)[6434]: " SLAVE_1_LOCAL_PORT +SLAVE_1_LOCAL_PORT=${SLAVE_1_LOCAL_PORT:-6434} +echo "SLAVE_1_LOCAL_PORT set $SLAVE_1_LOCAL_PORT" + +read -p "Please input MASTER_NODENAME [opengauss_master]: " MASTER_NODENAME +MASTER_NODENAME=${MASTER_NODENAME:-opengauss_master} +echo "MASTER_NODENAME set $MASTER_NODENAME" + +read -p "Please input SLAVE_NODENAME [opengauss_slave1]: " SLAVE_NODENAME +SLAVE_NODENAME=${SLAVE_NODENAME:-opengauss_slave1} +echo "SLAVE_NODENAME set $SLAVE_NODENAME" + +read -p "Please input openGauss VERSION [5.0.0]: " VERSION +VERSION=${VERSION:-5.0.0} +echo "openGauss VERSION set $VERSION" + +echo "starting " + +docker network create --subnet=$OG_SUBNET opengaussnetwork \ +|| { + echo "" + echo "ERROR: OpenGauss Database Network was NOT successfully created." + echo "HINT: opengaussnetwork Maybe Already Exsist Please Execute 'docker network rm opengaussnetwork' " + exit 1 +} +echo "OpenGauss Database Network Created." + +docker run --network opengaussnetwork --ip $MASTER_IP --privileged=true \ +--name $MASTER_NODENAME -h $MASTER_NODENAME -p $MASTER_HOST_PORT:$MASTER_HOST_PORT -d \ +-e GS_PORT=$MASTER_HOST_PORT \ +-e OG_SUBNET=$OG_SUBNET \ +-e GS_PASSWORD=$GS_PASSWORD \ +-e NODE_NAME=$MASTER_NODENAME \ +-e REPL_CONN_INFO="replconninfo1 = 'localhost=$MASTER_IP localport=$MASTER_LOCAL_PORT localservice=$MASTER_HOST_PORT remotehost=$SLAVE_1_IP remoteport=$SLAVE_1_LOCAL_PORT remoteservice=$SLAVE_1_HOST_PORT'\n" \ +opengauss:$VERSION -M primary \ +|| { + echo "" + echo "ERROR: OpenGauss Database Master Docker Container was NOT successfully created." + exit 1 +} +echo "OpenGauss Database Master Docker Container created." + +sleep 30s + +docker run --network opengaussnetwork --ip $SLAVE_1_IP --privileged=true \ +--name $SLAVE_NODENAME -h $SLAVE_NODENAME -p $SLAVE_1_HOST_PORT:$SLAVE_1_HOST_PORT -d \ +-e GS_PORT=$SLAVE_1_HOST_PORT \ +-e OG_SUBNET=$OG_SUBNET \ +-e GS_PASSWORD=$GS_PASSWORD \ +-e NODE_NAME=$SLAVE_NODENAME \ +-e REPL_CONN_INFO="replconninfo1 = 'localhost=$SLAVE_1_IP localport=$SLAVE_1_LOCAL_PORT localservice=$SLAVE_1_HOST_PORT remotehost=$MASTER_IP remoteport=$MASTER_LOCAL_PORT remoteservice=$MASTER_HOST_PORT'\n" \ +opengauss:$VERSION -M standby \ +|| { + echo "" + echo "ERROR: OpenGauss Database Slave1 Docker Container was NOT successfully created." + exit 1 +} +echo "OpenGauss Database Slave1 Docker Container created."