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 .dockerignore
# Ignore build artifacts # Ignore build artifacts
_output/ # _output/
logs/ logs/
# Ignore non-essential documentation # Ignore non-essential documentation
+2 -2
View File
@@ -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
+4
View File
@@ -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
View File
@@ -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
View File
@@ -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
+5 -3
View File
@@ -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
+9 -3
View File
@@ -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
View File
@@ -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!"
+2
View File
@@ -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"
+2 -1
View 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[@]}
+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() { 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() {
+1 -1
View File
@@ -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
View File
@@ -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:
+8 -1
View File
@@ -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!"
+2
View File
@@ -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[@]}
+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"]