mirror of
https://github.com/openimsdk/open-im-server.git
synced 2026-05-04 09:05:59 +08:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2849b85f89 | |||
| c9da2b0744 | |||
| d70a98ee9a | |||
| 0675110e40 | |||
| f7ba123a6c | |||
| d411117b87 |
+1
-1
@@ -4,7 +4,7 @@
|
|||||||
.dockerignore
|
.dockerignore
|
||||||
|
|
||||||
# Ignore build artifacts
|
# Ignore build artifacts
|
||||||
_output/
|
# _output/
|
||||||
logs/
|
logs/
|
||||||
|
|
||||||
# Ignore non-essential documentation
|
# Ignore non-essential documentation
|
||||||
|
|||||||
@@ -15,5 +15,5 @@
|
|||||||
USER=root
|
USER=root
|
||||||
PASSWORD=openIM123
|
PASSWORD=openIM123
|
||||||
MINIO_ENDPOINT=http://127.0.0.1:10005
|
MINIO_ENDPOINT=http://127.0.0.1:10005
|
||||||
API_URL=http://127.0.0.1:10002
|
API_URL=http://\;\;\ communications\ error\ to\ 216.239.36.10#53:\ timed\ out14.153.17.42:10002
|
||||||
DATA_DIR=./
|
DATA_DIR=/root/workspaces/openim/openim-server
|
||||||
|
|||||||
@@ -46,4 +46,8 @@ ENV PORT 10002
|
|||||||
|
|
||||||
EXPOSE ${PORT}
|
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"]
|
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
@@ -29,8 +29,8 @@
|
|||||||
zookeeper:
|
zookeeper:
|
||||||
schema: openim
|
schema: openim
|
||||||
address: [ 127.0.0.1:2181 ]
|
address: [ 127.0.0.1:2181 ]
|
||||||
username:
|
username: ''
|
||||||
password:
|
password: ''
|
||||||
|
|
||||||
###################### Mysql ######################
|
###################### Mysql ######################
|
||||||
# MySQL configuration
|
# MySQL configuration
|
||||||
@@ -60,7 +60,7 @@ mysql:
|
|||||||
# Default MongoDB database name
|
# Default MongoDB database name
|
||||||
# Maximum connection pool size
|
# Maximum connection pool size
|
||||||
mongo:
|
mongo:
|
||||||
uri:
|
uri: ''
|
||||||
address: [ 127.0.0.1:37017 ]
|
address: [ 127.0.0.1:37017 ]
|
||||||
database: openIM_v3
|
database: openIM_v3
|
||||||
username: root
|
username: root
|
||||||
@@ -73,7 +73,7 @@ mongo:
|
|||||||
# Username is required only for Redis version 6.0+
|
# Username is required only for Redis version 6.0+
|
||||||
redis:
|
redis:
|
||||||
address: [ 127.0.0.1:16379 ]
|
address: [ 127.0.0.1:16379 ]
|
||||||
username:
|
username: ''
|
||||||
password: openIM123
|
password: openIM123
|
||||||
|
|
||||||
###################### Kafka configuration information ######################
|
###################### Kafka configuration information ######################
|
||||||
@@ -84,8 +84,8 @@ redis:
|
|||||||
# It's not recommended to modify this topic name
|
# It's not recommended to modify this topic name
|
||||||
# Consumer group ID, it's not recommended to modify
|
# Consumer group ID, it's not recommended to modify
|
||||||
kafka:
|
kafka:
|
||||||
username:
|
username: ''
|
||||||
password:
|
password: ''
|
||||||
addr: [ 127.0.0.1:9092 ]
|
addr: [ 127.0.0.1:9092 ]
|
||||||
latestMsgToRedis:
|
latestMsgToRedis:
|
||||||
topic: "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
|
# 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
|
# Default listen IP is 0.0.0.0
|
||||||
rpc:
|
rpc:
|
||||||
registerIP:
|
registerIP: ''
|
||||||
listenIP: 0.0.0.0
|
listenIP: 0.0.0.0
|
||||||
|
|
||||||
###################### API configuration information ######################
|
###################### API configuration information ######################
|
||||||
@@ -132,26 +132,27 @@ api:
|
|||||||
# minio.signEndpoint is minio public network address
|
# minio.signEndpoint is minio public network address
|
||||||
object:
|
object:
|
||||||
enable: "minio"
|
enable: "minio"
|
||||||
apiURL: "http://127.0.0.1:10002"
|
apiURL: "http://14.153.17.42:10002"
|
||||||
minio:
|
minio:
|
||||||
bucket: "openim"
|
bucket: "openim"
|
||||||
endpoint: "http://127.0.0.1:10005"
|
endpoint: "http://127.0.0.1:10005"
|
||||||
accessKeyID: "root"
|
accessKeyID: "root"
|
||||||
secretAccessKey: "openIM123"
|
secretAccessKey: "openIM123"
|
||||||
sessionToken: ""
|
sessionToken: ''
|
||||||
signEndpoint: "http://127.0.0.1:10005"
|
signEndpoint: "http://14.153.17.42:10005"
|
||||||
cos:
|
cos:
|
||||||
bucketURL: "https://temp-1252357374.cos.ap-chengdu.myqcloud.com"
|
bucketURL: https://temp-1252357374.cos.ap-chengdu.myqcloud.com
|
||||||
secretID: ""
|
secretID: ''
|
||||||
secretKey: ""
|
secretKey: ''
|
||||||
sessionToken: ""
|
sessionToken: ''
|
||||||
oss:
|
oss:
|
||||||
endpoint: "https://oss-cn-chengdu.aliyuncs.com"
|
endpoint: "https://oss-cn-chengdu.aliyuncs.com"
|
||||||
bucket: "demo-9999999"
|
bucket: "demo-9999999"
|
||||||
bucketURL: "https://demo-9999999.oss-cn-chengdu.aliyuncs.com"
|
bucketURL: "https://demo-9999999.oss-cn-chengdu.aliyuncs.com"
|
||||||
accessKeyID: ""
|
accessKeyID: ''
|
||||||
accessKeySecret: ""
|
accessKeySecret: ''
|
||||||
sessionToken: ""
|
sessionToken: ''
|
||||||
|
|
||||||
|
|
||||||
###################### RPC Port Configuration ######################
|
###################### RPC Port Configuration ######################
|
||||||
# RPC service ports
|
# RPC service ports
|
||||||
@@ -193,11 +194,11 @@ rpcRegisterName:
|
|||||||
# Whether to output in json format
|
# Whether to output in json format
|
||||||
# Whether to include stack trace in logs
|
# Whether to include stack trace in logs
|
||||||
log:
|
log:
|
||||||
storageLocation: ../../../../../logs/
|
storageLocation: /root/workspaces/openim/openim-server/logs/
|
||||||
rotationTime: 24
|
rotationTime: 24
|
||||||
remainRotationCount: 2
|
remainRotationCount: 2
|
||||||
remainLogLevel: 6
|
remainLogLevel: 6
|
||||||
isStdout: false
|
isStdout: false
|
||||||
isJson: false
|
isJson: false
|
||||||
withStack: false
|
withStack: false
|
||||||
|
|
||||||
|
|||||||
+8
-5
@@ -103,11 +103,14 @@ services:
|
|||||||
# image: registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-server:main
|
# image: registry.cn-hangzhou.aliyuncs.com/openimsdk/openim-server:main
|
||||||
# image: openim/openim-server:main
|
# image: openim/openim-server:main
|
||||||
container_name: openim-server
|
container_name: openim-server
|
||||||
# healthcheck:
|
ports:
|
||||||
# test: ["CMD-SHELL", "./scripts/check-all.sh"]
|
- 10001:10001
|
||||||
# interval: 30s
|
- 10002:10002
|
||||||
# timeout: 10s
|
healthcheck:
|
||||||
# retries: 5
|
test: ["CMD-SHELL", "./scripts/check-all.sh"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 5
|
||||||
volumes:
|
volumes:
|
||||||
- ./logs:/openim/openim-server/logs
|
- ./logs:/openim/openim-server/logs
|
||||||
- ./config:/openim/openim-server/config
|
- ./config:/openim/openim-server/config
|
||||||
|
|||||||
@@ -28,6 +28,8 @@ source "${OPENIM_ROOT}/scripts/install/common.sh"
|
|||||||
|
|
||||||
OPENIM_VERBOSE=4
|
OPENIM_VERBOSE=4
|
||||||
|
|
||||||
|
openim::log::info "\n# Begin to check all openim service"
|
||||||
|
|
||||||
# OpenIM status
|
# OpenIM status
|
||||||
# Elegant printing function
|
# Elegant printing function
|
||||||
print_services_and_ports() {
|
print_services_and_ports() {
|
||||||
@@ -55,7 +57,7 @@ print_services_and_ports OPENIM_DEPENDENCY_TARGETS OPENIM_DEPENDENCY_PORT_TARGET
|
|||||||
|
|
||||||
# OpenIM check
|
# OpenIM check
|
||||||
echo "++ The port being checked: ${OPENIM_SERVER_PORT_LISTARIES[@]}"
|
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[@]}"
|
echo "+++ The port being checked: ${OPENIM_DEPENDENCY_PORT_LISTARIES[@]}"
|
||||||
|
|
||||||
set +e
|
set +e
|
||||||
@@ -69,10 +71,10 @@ else
|
|||||||
fi
|
fi
|
||||||
set -e
|
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
|
. $(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[@]}"
|
echo "+++ The port being checked: ${OPENIM_SERVER_PORT_LISTARIES[@]}"
|
||||||
openim::util::check_ports ${OPENIM_SERVER_PORT_LISTARIES[@]}
|
openim::util::check_ports ${OPENIM_SERVER_PORT_LISTARIES[@]}
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
|
|||||||
@@ -14,18 +14,24 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
set -o nounset
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
#fixme This scripts is the total startup scripts
|
#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
|
#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]}")/..
|
OPENIM_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
|
||||||
source "${OPENIM_ROOT}/scripts/install/common.sh"
|
source "${OPENIM_ROOT}/scripts/install/common.sh"
|
||||||
|
|
||||||
|
openim::log::info "\n# Use Docker to start all openim service"
|
||||||
|
|
||||||
trap 'openim::util::onCtrlC' INT
|
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}
|
tail -f ${LOG_FILE}
|
||||||
+16
-13
@@ -24,27 +24,30 @@ OPENIM_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
|
|||||||
|
|
||||||
source "${OPENIM_ROOT}/scripts/lib/init.sh"
|
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=(
|
declare -A TEMPLATES=(
|
||||||
[""${OPENIM_ROOT}"/deployments/templates/env_template.yaml"]=""${OPENIM_ROOT}"/.env"
|
["${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/openim.yaml"]="${OPENIM_ROOT}/config/config.yaml"
|
||||||
)
|
)
|
||||||
|
|
||||||
for template in "${!TEMPLATES[@]}"; do
|
for template in "${!TEMPLATES[@]}"; do
|
||||||
output_file=${TEMPLATES[$template]}
|
|
||||||
|
|
||||||
if [[ ! -f "${template}" ]]; then
|
if [[ ! -f "${template}" ]]; then
|
||||||
openim::log::error_exit "template file ${template} does not exist..."
|
openim::log::error_exit "template file ${template} does not exist..."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
openim::log::info "⌚ Working with template file: ${template} to ${output_file}..."
|
IFS=';' read -ra OUTPUT_FILES <<< "${TEMPLATES[$template]}"
|
||||||
""${OPENIM_ROOT}"/scripts/genconfig.sh" "${ENV_FILE}" "${template}" > "${output_file}" || {
|
for output_file in "${OUTPUT_FILES[@]}"; do
|
||||||
openim::log::error "Error processing template file ${template}"
|
openim::log::info "⌚ Working with template file: ${template} to ${output_file}..."
|
||||||
exit 1
|
"${OPENIM_ROOT}/scripts/genconfig.sh" "${ENV_FILE}" "${template}" > "${output_file}" || {
|
||||||
}
|
openim::log::error "Error processing template file ${template}"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
openim::log::success "✨ All configuration files have been successfully generated!"
|
openim::log::success "✨ All configuration files have been successfully generated!"
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ set -o pipefail
|
|||||||
OPENIM_ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")"/.. && pwd -P)
|
OPENIM_ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")"/.. && pwd -P)
|
||||||
source "${OPENIM_ROOT}/scripts/install/common.sh"
|
source "${OPENIM_ROOT}/scripts/install/common.sh"
|
||||||
|
|
||||||
|
openim::log::info "\n# Begin Install OpenIM Config"
|
||||||
|
|
||||||
for file in "${OPENIM_SERVER_TARGETS[@]}"; do
|
for file in "${OPENIM_SERVER_TARGETS[@]}"; do
|
||||||
VARNAME="$(echo $file | tr '[:lower:]' '[:upper:]' | tr '.' '_' | tr '-' '_')"
|
VARNAME="$(echo $file | tr '[:lower:]' '[:upper:]' | tr '.' '_' | tr '-' '_')"
|
||||||
VARVALUE="$OPENIM_OUTPUT_HOSTBIN/$file"
|
VARVALUE="$OPENIM_OUTPUT_HOSTBIN/$file"
|
||||||
|
|||||||
@@ -135,10 +135,11 @@ function openim::rpc::start() {
|
|||||||
for ((j = 0; j < ${#OPENIM_RPC_SERVICE_PORTS_ARRAY[@]}; j++)); do
|
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::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]}"
|
openim::rpc::start_service "${OPENIM_RPC_SERVICE_LISTARIES[$i]}" "${OPENIM_RPC_SERVICE_PORTS[j]}" "${OPENIM_RPC_PROM_PORTS[j]}"
|
||||||
sleep 0.5
|
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
|
sleep 0.5
|
||||||
|
|
||||||
openim::util::check_ports ${OPENIM_RPC_PORT_TARGETS[@]}
|
openim::util::check_ports ${OPENIM_RPC_PORT_TARGETS[@]}
|
||||||
# openim::util::check_ports ${OPENIM_RPC_PROM_PORT_TARGETS[@]}
|
# openim::util::check_ports ${OPENIM_RPC_PROM_PORT_TARGETS[@]}
|
||||||
|
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ readonly OPENIM_TOOLS_PRE_START_NAME_LISTARIES=("${OPENIM_TOOLS_PRE_START_NAME_T
|
|||||||
openim::tools::post_start_name() {
|
openim::tools::post_start_name() {
|
||||||
local targets=(
|
local targets=(
|
||||||
infra
|
infra
|
||||||
|
versionchecker
|
||||||
)
|
)
|
||||||
echo "${targets[@]}"
|
echo "${targets[@]}"
|
||||||
}
|
}
|
||||||
@@ -102,7 +103,7 @@ function openim::tools::start_service() {
|
|||||||
cmd="${cmd} --prometheus_port ${prometheus_port}"
|
cmd="${cmd} --prometheus_port ${prometheus_port}"
|
||||||
fi
|
fi
|
||||||
openim::log::info "Starting ${binary_name}..."
|
openim::log::info "Starting ${binary_name}..."
|
||||||
${cmd} >> "${LOG_FILE}" 2>&1 &
|
${cmd}
|
||||||
}
|
}
|
||||||
|
|
||||||
function openim::tools::start() {
|
function openim::tools::start() {
|
||||||
|
|||||||
@@ -212,11 +212,11 @@ openim::log::success()
|
|||||||
|
|
||||||
function openim::log::test_log() {
|
function openim::log::test_log() {
|
||||||
echo_log "test log"
|
echo_log "test log"
|
||||||
openim::log::error "openim::log::error"
|
|
||||||
openim::log::info "openim::log::info"
|
openim::log::info "openim::log::info"
|
||||||
openim::log::progress "openim::log::progress"
|
openim::log::progress "openim::log::progress"
|
||||||
openim::log::status "openim::log::status"
|
openim::log::status "openim::log::status"
|
||||||
openim::log::success "openim::log::success"
|
openim::log::success "openim::log::success"
|
||||||
|
openim::log::error "openim::log::error"
|
||||||
openim::log::error_exit "openim::log::error_exit"
|
openim::log::error_exit "openim::log::error_exit"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+20
-14
@@ -267,25 +267,29 @@ openim::util::check_ports() {
|
|||||||
openim::log::info "Checking ports: $*"
|
openim::log::info "Checking ports: $*"
|
||||||
# Iterate over each given port.
|
# Iterate over each given port.
|
||||||
for port in "$@"; do
|
for port in "$@"; do
|
||||||
# Use the `lsof` command to find process information related to the given port.
|
# Use the `ss` command to find process information related to the given port.
|
||||||
local info=$(lsof -i :$port -n -P | grep LISTEN || true)
|
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 there's no process information, it means the process associated with the port is not running.
|
||||||
if [[ -z $info ]]; then
|
if [[ -z $info ]]; then
|
||||||
not_started+=($port)
|
not_started+=($port)
|
||||||
else
|
else
|
||||||
# If there's process information, extract relevant details:
|
# Extract relevant details: Process Name, PID, and FD.
|
||||||
# Process ID, Command Name, and Start Time.
|
local details=$(echo $info | sed -n 's/.*users:(("\([^"]*\)",pid=\([^,]*\),fd=\([^)]*\))).*/\1 \2 \3/p')
|
||||||
local pid=$(echo $info | awk '{print $2}')
|
local command=$(echo $details | awk '{print $1}')
|
||||||
local command=$(echo $info | awk '{print $1}')
|
local pid=$(echo $details | awk '{print $2}')
|
||||||
local start_time=$(ps -o lstart= -p $pid)
|
local fd=$(echo $details | awk '{print $3}')
|
||||||
started+=("Port $port - Command: $command, PID: $pid, Start time: $start_time")
|
|
||||||
|
# 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
|
fi
|
||||||
done
|
done
|
||||||
echo
|
|
||||||
# Print information about ports whose processes are not running.
|
# Print information about ports whose processes are not running.
|
||||||
if [[ ${#not_started[@]} -ne 0 ]]; then
|
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
|
for port in "${not_started[@]}"; do
|
||||||
openim::log::error "Port $port is not started."
|
openim::log::error "Port $port is not started."
|
||||||
done
|
done
|
||||||
@@ -293,8 +297,7 @@ openim::util::check_ports() {
|
|||||||
|
|
||||||
# Print information about ports whose processes are running.
|
# Print information about ports whose processes are running.
|
||||||
if [[ ${#started[@]} -ne 0 ]]; then
|
if [[ ${#started[@]} -ne 0 ]]; then
|
||||||
echo
|
openim::log::info "\n### Started ports:"
|
||||||
openim::log::info "### Started ports:"
|
|
||||||
for info in "${started[@]}"; do
|
for info in "${started[@]}"; do
|
||||||
openim::log::info "$info"
|
openim::log::info "$info"
|
||||||
done
|
done
|
||||||
@@ -305,11 +308,14 @@ openim::util::check_ports() {
|
|||||||
echo "++++ OpenIM Log >> cat ${LOG_FILE}"
|
echo "++++ OpenIM Log >> cat ${LOG_FILE}"
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
openim::log::success "started[@] processes are running."
|
openim::log::success "All specified processes are running."
|
||||||
return 0
|
return 0
|
||||||
fi
|
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.
|
# 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:
|
# It accepts multiple process names as arguments and prints:
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ set -o pipefail
|
|||||||
OPENIM_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
|
OPENIM_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
|
||||||
source "${OPENIM_ROOT}/scripts/install/common.sh"
|
source "${OPENIM_ROOT}/scripts/install/common.sh"
|
||||||
|
|
||||||
|
openim::log::info "\n# Begin to start all openim service scripts"
|
||||||
|
|
||||||
set +o errexit
|
set +o errexit
|
||||||
openim::golang::check_openim_binaries
|
openim::golang::check_openim_binaries
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
@@ -61,16 +63,21 @@ function execute_scripts() {
|
|||||||
else
|
else
|
||||||
openim::log::errexit "Script ${script_path##*/} is missing or not executable."
|
openim::log::errexit "Script ${script_path##*/} is missing or not executable."
|
||||||
fi
|
fi
|
||||||
sleep 0.5
|
|
||||||
done
|
done
|
||||||
|
sleep 0.5
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# TODO Prelaunch tools, simple for now, can abstract functions later
|
# TODO Prelaunch tools, simple for now, can abstract functions later
|
||||||
TOOLS_START_SCRIPTS_PATH=${START_SCRIPTS_PATH}/openim-tools.sh
|
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
|
${TOOLS_START_SCRIPTS_PATH} openim::tools::pre-start
|
||||||
|
|
||||||
|
openim::log::info "\n## Starting OpenIM services"
|
||||||
execute_scripts
|
execute_scripts
|
||||||
|
|
||||||
|
openim::log::info "\n## Post Starting OpenIM services"
|
||||||
${TOOLS_START_SCRIPTS_PATH} openim::tools::post-start
|
${TOOLS_START_SCRIPTS_PATH} openim::tools::post-start
|
||||||
|
|
||||||
openim::log::success "✨ All OpenIM services have been successfully started!"
|
openim::log::success "✨ All OpenIM services have been successfully started!"
|
||||||
@@ -26,6 +26,8 @@ OPENIM_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
|
|||||||
|
|
||||||
source "${OPENIM_ROOT}/scripts/install/common.sh"
|
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[@]}"
|
echo "++ Ready to stop port: ${OPENIM_SERVER_PORT_LISTARIES[@]}"
|
||||||
|
|
||||||
openim::util::stop_services_on_ports ${OPENIM_SERVER_PORT_LISTARIES[@]}
|
openim::util::stop_services_on_ports ${OPENIM_SERVER_PORT_LISTARIES[@]}
|
||||||
|
|||||||
@@ -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"]
|
||||||
Reference in New Issue
Block a user