1
0

chore: docker部署安装脚本

This commit is contained in:
TsMask
2024-12-12 14:36:43 +08:00
parent 1fa9442c1f
commit 62bfc47a0a
10 changed files with 6493 additions and 48 deletions

View File

@@ -90,6 +90,6 @@ EXPOSE 33030 33033 33040 33060 80 22
CMD ["/bin/sh", "-c", "service ssh start && service nginx start && /usr/local/bin/omc --env ${APPENV} -c /usr/local/etc/omc/omc.yaml"]
# 构建
# docker build --build-arg VERSION=241101 -t omc:2.241101 .
# docker run -it omc:2.241101 sh
# docker build --build-arg VERSION=241211 -t omc:2.2412.1 .
# docker run -it omc:2.241211 sh
# service ssh start && service nginx start && /usr/local/bin/omc --env prod -c /usr/local/etc/omc/omc.yaml

View File

@@ -32,7 +32,7 @@ probject
```sh
docker build --build-arg VERSION="2.241101" -t omc:2.241101 .
docker build --build-arg VERSION="241211" -t omc:2.2412.1 .
```
@@ -58,19 +58,11 @@ docker run -d \
-e TZ="Asia/Shanghai" \
-e APPENV="prod" \
-m 512M \
--name omc2.241101 \
omc:2.241101
--name omc \
omc:2.2412.1
```
## 镜像导出导入
```sh
docker save omc:2.241101 -o omc_r2.241101.tar
docker load -i omc_r2.241101.tar
```
## 调试
```sh
@@ -82,3 +74,17 @@ docker exec -it omc:xxx sh
service ssh start && service nginx start && /usr/local/bin/omc --env prod -c /usr/local/etc/omc/omc.yaml
```
## 镜像导出导入
```sh
docker save redis:7.2.5 -o redis_7.2.5.tar
docker save mysql:8.0.39 -o mysql_8.0.39.tar
docker save omc:2.2412.1 -o omc_2.2412.1.tar
docker load -i redis_7.2.5.tar
docker load -i mysql_8.0.39.tar
docker load -i omc_2.2412.1.tar
sudo bash omc.sh install
```

139
docker/omc.sh Normal file
View File

@@ -0,0 +1,139 @@
#!/bin/bash
OMC_CONTAINER_NAME="omc"
MYSQL_CONTAINER_NAME="omc_mysql"
REDIS_CONTAINER_NAME="omc_redis"
# usage
usage() {
echo "Usage: bash omc.sh [install|uninstall|restart|start|stop]"
exit 1
}
# install
install(){
echo "====================== Install container omc service ====================="
echo "Install mysql and redis service program, default N (Y/N):"
read DB_SERVICE
DB_SERVICE=${DB_SERVICE:-"N"}
echo "Select the image in the tar directory (omc_2.2412.1.tar):"
read OMC_FILE
OMC_FILE=${OMC_FILE:-"omc_2.2412.1.tar"}
echo "Container time zone (Asia/Shanghai):"
read OMC_TZ
OMC_TZ=${OMC_TZ:-"Asia/Shanghai"}
echo "Container service port (80):"
read OMC_PORT
OMC_PORT=${OMC_PORT:-"80"}
echo "===================== Install container omc service ====================="
echo "==> Checking Docker version"
if sudo docker -v > /dev/null 2>&1; then
sudo docker -v
else
echo "Docker is not available or sudo privileges are not granted."
exit 1
fi
echo ""
echo "==> Created service network"
NETWORK="omcnet"
if ! docker network ls --filter name=$NETWORK -q | grep -q .; then
docker network create $NETWORK
echo "Network '$NETWORK' created."
else
echo "Network '$NETWORK' already exists."
fi
echo "==> Install service mysql and redis container"
MYSQL_CONTAINER_NAME="omc_mysql"
REDIS_CONTAINER_NAME="omc_redis"
if [[ "$DB_SERVICE" =~ ^[Yy]$ ]]; then
# MySQL Config
mysql_container=$(docker ps --filter "name=$MYSQL_CONTAINER_NAME" --format "{{.Names}}")
if [[ -z "$mysql_container" ]]; then
echo "MySQL container is not running. Installing MySQL container..."
docker load --input $(pwd)/tar/mysql_8.0.39.tar
MYSQL_IMAGE="mysql:8.0.39"
MYSQL_ROOT_PASSWORD="1000omc@kp!"
SQL_FILE_PATH="$(pwd)/sql/install/omc_db.sql"
docker run --privileged=true --restart=always -e TZ="$OMC_TZ" \
-e MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD \
-v $SQL_FILE_PATH:/docker-entrypoint-initdb.d/database.sql \
--network $NETWORK \
--name $MYSQL_CONTAINER_NAME \
-d $MYSQL_IMAGE
else
echo "MySQL container is already running: $mysql_container"
fi
# Redis Config
redis_container=$(docker ps --filter "name=$REDIS_CONTAINER_NAME" --format "{{.Names}}")
if [[ -z "$redis_container" ]]; then
echo "Redis container is not running. Installing Redis container..."
docker load --input $(pwd)/tar/redis_7.2.5.tar
REDIS_IMAGE="redis:7.2.5"
REDIS_PASSWORD="helloearth"
docker run --privileged=true --restart=always -e TZ="$OMC_TZ" \
-e REDIS_PASSWORD=$REDIS_PASSWORD \
--network $NETWORK \
--name $REDIS_CONTAINER_NAME \
-d $REDIS_IMAGE
else
echo "Redis container is already running: $redis_container"
fi
else
echo "You chose not to install MySQL and Redis containers."
fi
echo "==> Loading service omc container"
docker load --input $(pwd)/tar/$OMC_FILE
if [ ! -d /usr/local/etc/omc ]; then
mkdir -p /usr/local/etc/omc
cp -rf ./omc/* /usr/local/etc/omc
fi
OMC_IMAGE=$(echo "$OMC_FILE" | sed -e 's/_/:/' -e 's/\.tar$//')
docker run --privileged=true --restart=always -m 512M \
-v /usr/local/etc/omc:/usr/local/etc/omc \
-v /usr/local/etc/omc/logs:/var/log \
-v /usr/local/etc/omc/nginx/cert:/etc/nginx/cert \
-v /usr/local/etc/omc/nginx/nginx.conf:/etc/nginx/nginx.conf \
-e TZ=$OMC_TZ \
-p $OMC_PORT:80 \
--network $NETWORK \
--name $OMC_CONTAINER_NAME \
-d $OMC_IMAGE
echo "Running service $OMC_CONTAINER_NAME container port $OMC_PORT"
}
# uninstall
uninstall(){
docker stop $OMC_CONTAINER_NAME && docker rm $OMC_CONTAINER_NAME
docker stop $REDIS_CONTAINER_NAME && docker rm $REDIS_CONTAINER_NAME
docker stop $MYSQL_CONTAINER_NAME && docker rm $MYSQL_CONTAINER_NAME
}
# According to the input parameters, the corresponding method will be selected for execution, and the instructions will be executed without input.
case "$1" in
"install")
install
;;
"uninstall")
uninstall
;;
"restart")
docker restart $OMC_CONTAINER_NAME
;;
"start")
docker start $OMC_CONTAINER_NAME
;;
"stop")
docker stop $OMC_CONTAINER_NAME
;;
*)
usage
;;
esac

View File

@@ -1,11 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>OMC Document</title>
</head>
<body>
<h1>OMC</h1>
</body>
</html>

View File

@@ -1 +1 @@
aNHIGgEM8peJlhuQr1jjoTww/bap9p8cdnEpbPlX0LvvYDLw1X6tqNxeN0QyGdSQHRkpiS7jw2eFiuWsB7sPewohAq2nZgqyYcbg88pjViM72CkCrv0mQ+Ia0ir/FN5zjG0KCy7Dju6Rr7uENqdNVA==
# unique

View File

@@ -8,10 +8,6 @@ logger:
duration: 24
count: 2
pprof:
enabled: true
addr: :33060
# rest agent listen ipv4/v6 and port, support multiple routines
# ip: 0.0.0.0 or ::0, support IPv4/v6
# clientAuthType: 0:NoClientCert (default), 1:RequestClientCert, 2:RequireAnyClientCert,
@@ -28,19 +24,19 @@ database:
type: mysql
user: root
password: "1000omc@kp!"
host: "192.168.9.58"
port: 13306
host: "omc_mysql"
port: 3306
name: "omc_db"
connParam: charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True
backup: d:/omc.git/be.ems/restagent/database
backup: "/usr/local/etc/omc/database"
# Redis data cache
redis:
dataSource:
# OMC system db
default:
port: 16379 # Redis port
host: "192.168.9.58" # Redis host
port: 6379 # Redis port
host: "omc_redis" # Redis host
password: "helloearth"
db: 10 # Redis db_num
# used to specify the default data source for multiple data resourece
@@ -54,12 +50,11 @@ mml:
sizeRow: 600
sizeCol: 128
bufferSize: 65535
mmlHome: ./mmlhome
# Tracking configuration
trace:
enabled: true
host: "192.168.5.58" # Fill in the specific IP address
host: "0.0.0.0" # Fill in the specific IP address
port: 33033
# NE config
@@ -93,12 +88,12 @@ omc:
checksign: false
rootDir: ./
binDir: ./bin
backup: C:/usr/local/omc/backup
upload: C:/usr/local/omc/upload
frontUpload: C:/usr/local/omc/upload
frontTraceDir: C:/usr/local/omc/trace
software: C:/usr/local/omc/software
license: C:/usr/local/omc/license
backup: /usr/local/omc/backup
upload: /usr/local/omc/upload
frontUpload: /usr/local/omc/upload
frontTraceDir: /usr/local/omc/trace
software: /usr/local/omc/software
license: /usr/local/omc/license
gtpUri: gtp:192.168.2.219:2152
checkContentType: false
testMode: false
@@ -150,8 +145,8 @@ auth:
token: true
expires: 1800
session: multiple
publicKey: ./etc/certs/omc_pub.key
privateKey: ./etc/certs/omc_pri.key
publicKey: /usr/local/omc/certs/omc_pub.key
privateKey: /usr/local/omc/omc_pri.key
# Parameter for limit number
# rmuid_maxnum: the max number of rmUID, default: 50
@@ -168,11 +163,13 @@ params:
urimaxlen: 2100000
rmuidregexp: "[0-9]{4}[A-Z]{2}[A-Z]{2}[0-9A-Z]{1}[0-9A-Z]{3}[0-9A-Z]{1,16}"
# 静态文件配置, 相对项目根路径或填绝对路径
# Static file configuration, relative to the project root path or fill in the absolute path
staticFile:
# 默认资源dir目录需要预先创建
# Default resources, dir directories need to be pre-created
default:
prefix: "/static"
dir: "/usr/local/etc/omc/static"
# 文件上传资源目录映射,与项目目录同级
# File upload resource directory mapping, same level as project directory
upload:
dir: "/usr/local/etc/omc/upload"
prefix: "/upload"
dir: "/usr/local/etc/omc/upload"

View File

@@ -0,0 +1 @@
# OMC Upload Dir

File diff suppressed because one or more lines are too long

View File

5
docker/tar/README.md Normal file
View File

@@ -0,0 +1,5 @@
# Docker Image
- mysql:8.0.39 => mysql_8.0.39.tar
- redis:7.2.5 => redis_7.2.5.tar
- omc:2.2412.1 => omc_2.2412.1.tar