Compare commits

...

6 Commits

Author SHA1 Message Date
Xinwei Xiong(cubxxw-openim) 2849b85f89 feat: add test file
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
2023-08-29 16:38:44 +08:00
Xinwei Xiong(cubxxw-openim) c9da2b0744 feat: sava images file
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
2023-08-29 12:43:41 +08:00
Xinwei Xiong(cubxxw-openim) d70a98ee9a feat: add more test project
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
2023-08-28 21:55:36 +08:00
Xinwei Xiong(cubxxw-openim) 0675110e40 feat: add more test project
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
2023-08-28 21:54:17 +08:00
Xinwei Xiong(cubxxw-openim) f7ba123a6c feat: add more test project
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
2023-08-28 21:53:44 +08:00
Xinwei Xiong(cubxxw-openim) d411117b87 fix: fix chat bug
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
2023-08-28 20:45:01 +08:00
17 changed files with 127 additions and 64 deletions
+1 -1
View File
@@ -4,7 +4,7 @@
.dockerignore
# Ignore build artifacts
_output/
# _output/
logs/
# Ignore non-essential documentation
+2 -2
View File
@@ -15,5 +15,5 @@
USER=root
PASSWORD=openIM123
MINIO_ENDPOINT=http://127.0.0.1:10005
API_URL=http://127.0.0.1:10002
DATA_DIR=./
API_URL=http://\;\;\ communications\ error\ to\ 216.239.36.10#53:\ timed\ out14.153.17.42:10002
DATA_DIR=/root/workspaces/openim/openim-server
+4
View File
@@ -46,4 +46,8 @@ ENV PORT 10002
EXPOSE ${PORT}
RUN cp ${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-api /usr/bin/openim-api
ENTRYPOINT ["/usr/bin/openim-api","-c" ${SERVER_WORKDIR}/config"]
CMD ["bash", "-c","${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-api --port ${PORT} -c ${SERVER_WORKDIR}/config"]
@@ -0,0 +1,8 @@
FROM ghcr.io/openim-sigs/openim-bash-image:latest
COPY openim-api /usr/bin/
# nosemgrep: dockerfile.security.missing-user.missing-user
ENTRYPOINT ["/usr/bin/openim-api"]
# nosemgrep: dockerfile.security.missing-user.missing-user
CMD ["--help"]
+20 -19
View File
@@ -29,8 +29,8 @@
zookeeper:
schema: openim
address: [ 127.0.0.1:2181 ]
username:
password:
username: ''
password: ''
###################### Mysql ######################
# MySQL configuration
@@ -60,7 +60,7 @@ mysql:
# Default MongoDB database name
# Maximum connection pool size
mongo:
uri:
uri: ''
address: [ 127.0.0.1:37017 ]
database: openIM_v3
username: root
@@ -73,7 +73,7 @@ mongo:
# Username is required only for Redis version 6.0+
redis:
address: [ 127.0.0.1:16379 ]
username:
username: ''
password: openIM123
###################### Kafka configuration information ######################
@@ -84,8 +84,8 @@ redis:
# It's not recommended to modify this topic name
# Consumer group ID, it's not recommended to modify
kafka:
username:
password:
username: ''
password: ''
addr: [ 127.0.0.1:9092 ]
latestMsgToRedis:
topic: "latestMsgToRedis"
@@ -105,7 +105,7 @@ kafka:
# IP address to register with zookeeper when starting RPC, the IP and corresponding rpcPort should be accessible by api/gateway
# Default listen IP is 0.0.0.0
rpc:
registerIP:
registerIP: ''
listenIP: 0.0.0.0
###################### API configuration information ######################
@@ -132,26 +132,27 @@ api:
# minio.signEndpoint is minio public network address
object:
enable: "minio"
apiURL: "http://127.0.0.1:10002"
apiURL: "http://14.153.17.42:10002"
minio:
bucket: "openim"
endpoint: "http://127.0.0.1:10005"
accessKeyID: "root"
secretAccessKey: "openIM123"
sessionToken: ""
signEndpoint: "http://127.0.0.1:10005"
sessionToken: ''
signEndpoint: "http://14.153.17.42:10005"
cos:
bucketURL: "https://temp-1252357374.cos.ap-chengdu.myqcloud.com"
secretID: ""
secretKey: ""
sessionToken: ""
bucketURL: https://temp-1252357374.cos.ap-chengdu.myqcloud.com
secretID: ''
secretKey: ''
sessionToken: ''
oss:
endpoint: "https://oss-cn-chengdu.aliyuncs.com"
bucket: "demo-9999999"
bucketURL: "https://demo-9999999.oss-cn-chengdu.aliyuncs.com"
accessKeyID: ""
accessKeySecret: ""
sessionToken: ""
accessKeyID: ''
accessKeySecret: ''
sessionToken: ''
###################### RPC Port Configuration ######################
# RPC service ports
@@ -193,11 +194,11 @@ rpcRegisterName:
# Whether to output in json format
# Whether to include stack trace in logs
log:
storageLocation: ../../../../../logs/
storageLocation: /root/workspaces/openim/openim-server/logs/
rotationTime: 24
remainRotationCount: 2
remainLogLevel: 6
isStdout: false
isStdout: false
isJson: false
withStack: false
+8 -5
View File
@@ -103,11 +103,14 @@ services:
# image: registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-server:main
# image: openim/openim-server:main
container_name: openim-server
# healthcheck:
# test: ["CMD-SHELL", "./scripts/check-all.sh"]
# interval: 30s
# timeout: 10s
# retries: 5
ports:
- 10001:10001
- 10002:10002
healthcheck:
test: ["CMD-SHELL", "./scripts/check-all.sh"]
interval: 30s
timeout: 10s
retries: 5
volumes:
- ./logs:/openim/openim-server/logs
- ./config:/openim/openim-server/config
+5 -3
View File
@@ -28,6 +28,8 @@ source "${OPENIM_ROOT}/scripts/install/common.sh"
OPENIM_VERBOSE=4
openim::log::info "\n# Begin to check all openim service"
# OpenIM status
# Elegant printing function
print_services_and_ports() {
@@ -55,7 +57,7 @@ print_services_and_ports OPENIM_DEPENDENCY_TARGETS OPENIM_DEPENDENCY_PORT_TARGET
# OpenIM check
echo "++ The port being checked: ${OPENIM_SERVER_PORT_LISTARIES[@]}"
echo "## Check all dependent service ports"
openim::log::info "\n## Check all dependent service ports"
echo "+++ The port being checked: ${OPENIM_DEPENDENCY_PORT_LISTARIES[@]}"
set +e
@@ -69,10 +71,10 @@ else
fi
set -e
echo -e "\n## Check OpenIM service name"
openim::log::info "\n## Check OpenIM service name"
. $(dirname ${BASH_SOURCE})/install/openim-msgtransfer.sh openim::msgtransfer::check
echo -e "\n## Check all OpenIM service ports"
openim::log::info "\n## Check all OpenIM service ports"
echo "+++ The port being checked: ${OPENIM_SERVER_PORT_LISTARIES[@]}"
openim::util::check_ports ${OPENIM_SERVER_PORT_LISTARIES[@]}
if [[ $? -ne 0 ]]; then
+9 -3
View File
@@ -14,18 +14,24 @@
# See the License for the specific language governing permissions and
# limitations under the License.
set -o errexit
set -o nounset
set -o pipefail
#fixme This scripts is the total startup scripts
#fixme The full name of the shell scripts that needs to be started is placed in the need_to_start_server_shell array
OPENIM_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
source "${OPENIM_ROOT}/scripts/install/common.sh"
openim::log::info "\n# Use Docker to start all openim service"
trap 'openim::util::onCtrlC' INT
nohup "${OPENIM_ROOT}"/scripts/start-all.sh >> ${LOG_FILE} 2>&1 &
"${OPENIM_ROOT}"/scripts/start-all.sh
sleep 15
sleep 5
nohup "${OPENIM_ROOT}"/scripts/check-all.sh >> ${LOG_FILE} 2>&1 &
"${OPENIM_ROOT}"/scripts/check-all.sh
tail -f ${LOG_FILE}
+16 -13
View File
@@ -24,27 +24,30 @@ OPENIM_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
source "${OPENIM_ROOT}/scripts/lib/init.sh"
# 定义一个配置文件数组,其中包含需要生成的配置文件的名称路径 (en: Define a profile array that contains the name path of the profile to be generated.)
readonly ENV_FILE=${ENV_FILE:-"${OPENIM_ROOT}"/scripts/install/environment.sh}
# 定义一个配置文件数组,其中包含需要生成的配置文件的名称路径
# (en: Define a profile array that contains the name path of the profile to be generated.)
readonly ENV_FILE=${ENV_FILE:-"${OPENIM_ROOT}/scripts/install/environment.sh"}
# 定义关联数组,其中键是模板文件,值是对应的输出文件 (en: Defines an associative array where the keys are the template files and the values are the corresponding output files.)
# 定义关联数组,其中键是模板文件,值是对应的输出文件
# (en: Defines an associative array where the keys are the template files and the values are the corresponding output files.)
declare -A TEMPLATES=(
[""${OPENIM_ROOT}"/deployments/templates/env_template.yaml"]=""${OPENIM_ROOT}"/.env"
[""${OPENIM_ROOT}"/deployments/templates/openim.yaml"]=""${OPENIM_ROOT}"/config/config.yaml"
["${OPENIM_ROOT}/deployments/templates/env_template.yaml"]="${OPENIM_ROOT}/.env"
["${OPENIM_ROOT}/deployments/templates/openim.yaml"]="${OPENIM_ROOT}/config/config.yaml"
)
for template in "${!TEMPLATES[@]}"; do
output_file=${TEMPLATES[$template]}
if [[ ! -f "${template}" ]]; then
openim::log::error_exit "template file ${template} does not exist..."
fi
openim::log::info "⌚ Working with template file: ${template} to ${output_file}..."
""${OPENIM_ROOT}"/scripts/genconfig.sh" "${ENV_FILE}" "${template}" > "${output_file}" || {
openim::log::error "Error processing template file ${template}"
exit 1
}
IFS=';' read -ra OUTPUT_FILES <<< "${TEMPLATES[$template]}"
for output_file in "${OUTPUT_FILES[@]}"; do
openim::log::info "⌚ Working with template file: ${template} to ${output_file}..."
"${OPENIM_ROOT}/scripts/genconfig.sh" "${ENV_FILE}" "${template}" > "${output_file}" || {
openim::log::error "Error processing template file ${template}"
exit 1
}
done
done
openim::log::success "✨ All configuration files have been successfully generated!"
openim::log::success "✨ All configuration files have been successfully generated!"
+2
View File
@@ -22,6 +22,8 @@ set -o pipefail
OPENIM_ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")"/.. && pwd -P)
source "${OPENIM_ROOT}/scripts/install/common.sh"
openim::log::info "\n# Begin Install OpenIM Config"
for file in "${OPENIM_SERVER_TARGETS[@]}"; do
VARNAME="$(echo $file | tr '[:lower:]' '[:upper:]' | tr '.' '_' | tr '-' '_')"
VARVALUE="$OPENIM_OUTPUT_HOSTBIN/$file"
+2 -1
View File
@@ -135,10 +135,11 @@ function openim::rpc::start() {
for ((j = 0; j < ${#OPENIM_RPC_SERVICE_PORTS_ARRAY[@]}; j++)); do
openim::log::info "Starting ${OPENIM_RPC_SERVICE_LISTARIES[$i]} service, port: ${OPENIM_RPC_SERVICE_PORTS[j]}, prometheus port: ${OPENIM_RPC_PROM_PORTS[j]}, binary root: ${OPENIM_OUTPUT_HOSTBIN}/${OPENIM_RPC_SERVICE_LISTARIES[$i]}"
openim::rpc::start_service "${OPENIM_RPC_SERVICE_LISTARIES[$i]}" "${OPENIM_RPC_SERVICE_PORTS[j]}" "${OPENIM_RPC_PROM_PORTS[j]}"
sleep 0.5
done
done
sleep 0.5
openim::util::check_ports ${OPENIM_RPC_PORT_TARGETS[@]}
# openim::util::check_ports ${OPENIM_RPC_PROM_PORT_TARGETS[@]}
+2 -1
View File
@@ -71,6 +71,7 @@ readonly OPENIM_TOOLS_PRE_START_NAME_LISTARIES=("${OPENIM_TOOLS_PRE_START_NAME_T
openim::tools::post_start_name() {
local targets=(
infra
versionchecker
)
echo "${targets[@]}"
}
@@ -102,7 +103,7 @@ function openim::tools::start_service() {
cmd="${cmd} --prometheus_port ${prometheus_port}"
fi
openim::log::info "Starting ${binary_name}..."
${cmd} >> "${LOG_FILE}" 2>&1 &
${cmd}
}
function openim::tools::start() {
+1 -1
View File
@@ -212,11 +212,11 @@ openim::log::success()
function openim::log::test_log() {
echo_log "test log"
openim::log::error "openim::log::error"
openim::log::info "openim::log::info"
openim::log::progress "openim::log::progress"
openim::log::status "openim::log::status"
openim::log::success "openim::log::success"
openim::log::error "openim::log::error"
openim::log::error_exit "openim::log::error_exit"
}
+20 -14
View File
@@ -267,25 +267,29 @@ openim::util::check_ports() {
openim::log::info "Checking ports: $*"
# Iterate over each given port.
for port in "$@"; do
# Use the `lsof` command to find process information related to the given port.
local info=$(lsof -i :$port -n -P | grep LISTEN || true)
# Use the `ss` command to find process information related to the given port.
local info=$(ss -ltnp | grep -w ":$port" || true)
# If there's no process information, it means the process associated with the port is not running.
if [[ -z $info ]]; then
not_started+=($port)
else
# If there's process information, extract relevant details:
# Process ID, Command Name, and Start Time.
local pid=$(echo $info | awk '{print $2}')
local command=$(echo $info | awk '{print $1}')
local start_time=$(ps -o lstart= -p $pid)
started+=("Port $port - Command: $command, PID: $pid, Start time: $start_time")
# Extract relevant details: Process Name, PID, and FD.
local details=$(echo $info | sed -n 's/.*users:(("\([^"]*\)",pid=\([^,]*\),fd=\([^)]*\))).*/\1 \2 \3/p')
local command=$(echo $details | awk '{print $1}')
local pid=$(echo $details | awk '{print $2}')
local fd=$(echo $details | awk '{print $3}')
# Get the start time of the process using the PID
local start_time=$(ps -p $pid -o lstart=)
started+=("Port $port - Command: $command, PID: $pid, FD: $fd, Started: $start_time")
fi
done
echo
# Print information about ports whose processes are not running.
if [[ ${#not_started[@]} -ne 0 ]]; then
openim::log::info "### Not started ports:"
openim::log::info "\n### Not started ports:"
for port in "${not_started[@]}"; do
openim::log::error "Port $port is not started."
done
@@ -293,8 +297,7 @@ openim::util::check_ports() {
# Print information about ports whose processes are running.
if [[ ${#started[@]} -ne 0 ]]; then
echo
openim::log::info "### Started ports:"
openim::log::info "\n### Started ports:"
for info in "${started[@]}"; do
openim::log::info "$info"
done
@@ -305,11 +308,14 @@ openim::util::check_ports() {
echo "++++ OpenIM Log >> cat ${LOG_FILE}"
return 1
else
openim::log::success "started[@] processes are running."
openim::log::success "All specified processes are running."
return 0
fi
}
# openim::util::check_ports 10002 1004
# set +o errexit
# Sample call for testing:
# openim::util::check_ports 10002 1004 12345 13306
# set -o errexit
# The `openim::util::check_process_names` function analyzes the state of processes based on given names.
# It accepts multiple process names as arguments and prints:
+8 -1
View File
@@ -22,6 +22,8 @@ set -o pipefail
OPENIM_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
source "${OPENIM_ROOT}/scripts/install/common.sh"
openim::log::info "\n# Begin to start all openim service scripts"
set +o errexit
openim::golang::check_openim_binaries
if [[ $? -ne 0 ]]; then
@@ -61,16 +63,21 @@ function execute_scripts() {
else
openim::log::errexit "Script ${script_path##*/} is missing or not executable."
fi
sleep 0.5
done
sleep 0.5
}
# TODO Prelaunch tools, simple for now, can abstract functions later
TOOLS_START_SCRIPTS_PATH=${START_SCRIPTS_PATH}/openim-tools.sh
openim::log::info "\n## Pre Starting OpenIM services"
${TOOLS_START_SCRIPTS_PATH} openim::tools::pre-start
openim::log::info "\n## Starting OpenIM services"
execute_scripts
openim::log::info "\n## Post Starting OpenIM services"
${TOOLS_START_SCRIPTS_PATH} openim::tools::post-start
openim::log::success "✨ All OpenIM services have been successfully started!"
+2
View File
@@ -26,6 +26,8 @@ OPENIM_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
source "${OPENIM_ROOT}/scripts/install/common.sh"
openim::log::info "\n# Begin to stop all openim service"
echo "++ Ready to stop port: ${OPENIM_SERVER_PORT_LISTARIES[@]}"
openim::util::stop_services_on_ports ${OPENIM_SERVER_PORT_LISTARIES[@]}
+17
View File
@@ -0,0 +1,17 @@
# FROM ghcr.io/openim-sigs/openim-bash-image:latest
FROM ghcr.io/openim-sigs/openim-bash-image:latest
WORKDIR /openim/openim-server
COPY ./_output/bin/platforms /openim/openim-server/_output/bin/platforms
COPY ./config /openim/openim-server/config
ENV PORT 10002
EXPOSE 10002
RUN cp -r ${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-api /usr/bin/openim-api
ENTRYPOINT ["/usr/bin/openim-api","-c","${SERVER_WORKDIR}/config"]
CMD ["--port 10002"]