Compare commits

..

8 Commits

Author SHA1 Message Date
Xinwei Xiong(cubxxw-openim) f82b1be0bc feat: set more help and port set
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
2023-08-30 10:08:51 +08:00
Xinwei Xiong(cubxxw-openim) c7316a35c1 feat: add more test
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
2023-08-29 22:35:17 +08:00
Xinwei Xiong(cubxxw-openim) 4401a5a650 feat: add more test
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
2023-08-29 22:35:08 +08:00
Xinwei Xiong(cubxxw-openim) ed23dc8a4b feat: add more test
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
2023-08-29 18:03:37 +08:00
Xinwei Xiong(cubxxw-openim) 5d4fd6110d feat: add more test
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
2023-08-29 18:03:29 +08:00
Xinwei Xiong(cubxxw-openim) bac711e29f feat: add more test
Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
2023-08-29 17:50:06 +08:00
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
46 changed files with 463 additions and 180 deletions
+2 -2
View File
@@ -15,5 +15,5 @@
USER=root
PASSWORD=openIM123
MINIO_ENDPOINT=http://127.0.0.1:10005
API_URL=http://14.153.17.42:10002
DATA_DIR=/root/workspaces/openim/openim-server
API_URL=http://127.0.0.1:10002
DATA_DIR=./
+14
View File
@@ -1,3 +1,17 @@
# Copyright © 2023 OpenIM. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
OpenIMSDK/openim-docker:
- source: ./config
dest: ./openim-server/release/config
+2 -2
View File
@@ -10,8 +10,8 @@ ENV GOPROXY=$GOPROXY
# Set up the working directory
WORKDIR /openim/openim-server
COPY go.mod go.sum go.work ./
#RUN go mod download
COPY go.mod go.sum ./
RUN go mod download
# Copy all files to the container
ADD . .
+10 -5
View File
@@ -58,6 +58,16 @@ export USAGE_OPTIONS
init:
@$(MAKE) gen.init
## init-githooks: Initialize git hooks ✨
.PHONY: init-githooks
init-githooks:
@$(MAKE) gen.init-githooks
## gen: Generate all necessary files. ✨
.PHONY: gen
gen:
@$(MAKE) gen.run
## demo: Run demo get started with Makefiles quickly ✨
.PHONY: demo
demo:
@@ -190,11 +200,6 @@ push.multiarch:
tools:
@$(MAKE) tools.install
## gen: Generate all necessary files. ✨
.PHONY: gen
gen:
@$(MAKE) gen.run
## swagger: Generate swagger document. ✨
.PHONY: swagger
swagger:
+116 -2
View File
@@ -255,6 +255,114 @@ builds:
- "6"
- "7"
- binary: infra
id: infra
main: ./tools/infra/infra.go
goos:
- darwin
- windows
- linux
goarch:
- s390x
- mips64
- mips64le
- amd64
- ppc64le
- arm64
goarm:
- "6"
- "7"
- binary: ncpu
id: ncpu
main: ./tools/ncpu/ncpu.go
goos:
- darwin
- windows
- linux
goarch:
- s390x
- mips64
- mips64le
- amd64
- ppc64le
- arm64
goarm:
- "6"
- "7"
- binary: component
id: component
main: ./tools/component/component.go
goos:
- darwin
- windows
- linux
goarch:
- s390x
- mips64
- mips64le
- amd64
- ppc64le
- arm64
goarm:
- "6"
- "7"
- binary: versionchecker
id: versionchecker
main: ./tools/versionchecker/versionchecker.go
goos:
- darwin
- windows
- linux
goarch:
- s390x
- mips64
- mips64le
- amd64
- ppc64le
- arm64
goarm:
- "6"
- "7"
- binary: changelog
id: changelog
main: ./tools/changelog/changelog.go
goos:
- darwin
- windows
- linux
goarch:
- s390x
- mips64
- mips64le
- amd64
- ppc64le
- arm64
goarm:
- "6"
- "7"
- binary: yamlfmt
id: yamlfmt
main: ./tools/yamlfmt/yamlfmt.go
goos:
- darwin
- windows
- linux
goarch:
- s390x
- mips64
- mips64le
- amd64
- ppc64le
- arm64
goarm:
- "6"
- "7"
archives:
- format: tar.gz
# this name template makes the OS and Arch compatible with the results of uname.
@@ -269,7 +377,11 @@ archives:
files:
- LICENSE
- README.md
- README-zh_CN.md
- CODE_OF_CONDUCT.md
- CHANGELOG/*
- scripts/*
- Makefile
- CONTRIBUTING.md
- docs/*
- src: "*.md"
@@ -339,7 +451,9 @@ changelog:
# - image_templates:
# - "openimsdk/open-im-server:{{ .Tag }}-amd64"
# - "ghcr.io/goreleaser/goreleaser:{{ .Tag }}-amd64"
# dockerfile: Dockerfile
# dockerfile: build/images/openim-api/Dockerfile.release
# ids:
# - openim-api
# use: buildx
# build_flag_templates:
# - "--pull"
@@ -359,7 +473,7 @@ changelog:
# - image_templates:
# - "goreleaser/goreleaser:{{ .Tag }}-arm64"
# - "ghcr.io/goreleaser/goreleaser:{{ .Tag }}-arm64"
# dockerfile: Dockerfile
# dockerfile: build/images/openim-api/Dockerfile.release
# use: buildx
# build_flag_templates:
# - "--pull"
+5 -2
View File
@@ -43,7 +43,10 @@ COPY --from=builder /openim/openim-server/_output/bin/platforms /openim/openim-s
COPY --from=builder /openim/openim-server/config /openim/openim-server/config
ENV PORT 10002
ENV CONFIG=/openim/openim-server/config
EXPOSE ${PORT}
EXPOSE $PORT
CMD ["bash", "-c","${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-api --port ${PORT} -c ${SERVER_WORKDIR}/config"]
RUN cp -r ${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-api /usr/bin/openim-api
CMD ["bash", "-c", "openim-api -c $CONFIG --port $PORT"]
@@ -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"]
+5 -1
View File
@@ -42,4 +42,8 @@ WORKDIR /openim/openim-server
COPY --from=builder $OPENIM_SERVER_BINDIR/platforms /openim/openim-server/_output/bin/platforms
COPY --from=builder ${SERVER_WORKDIR}/config /openim/openim-server/config
CMD ["bash", "-c","${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-cmdutils"]
RUN cp -r ${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-cmdutils /usr/bin/openim-cmdutils
ENTRYPOINT ["openim-cmdutils"]
CMD ["--help"]
+5 -1
View File
@@ -41,4 +41,8 @@ WORKDIR /openim/openim-server
COPY --from=builder /openim/openim-server/_output/bin/platforms /openim/openim-server/_output/bin/platforms
COPY --from=builder /openim/openim-server/config /openim/openim-server/config
CMD ["bash", "-c","${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-crontask"]
ENV CONFIG=/openim/openim-server/config
RUN cp -r ${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-crontask /usr/bin/openim-crontask
CMD ["bash", "-c", "openim-crontask -c $CONFIG"]
+8 -5
View File
@@ -41,10 +41,13 @@ WORKDIR /openim/openim-server
COPY --from=builder /openim/openim-server/_output/bin/platforms /openim/openim-server/_output/bin/platforms
COPY --from=builder /openim/openim-server/config /openim/openim-server/config
ENV OS ${OS}
ENV ARCH ${ARCH}
ENV PORT 10140
ENV WS_PORT 10001
ENV CONFIG=/openim/openim-server/config
EXPOSE 10140
EXPOSE 10001
EXPOSE $PORT
EXPOSE $WS_PORT
CMD ${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-msggateway --port 10140 --ws_port 10001
RUN cp -r ${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-msggateway /usr/bin/openim-msggateway
CMD ["bash", "-c", "openim-msggateway -c $CONFIG --port $PORT --ws_port $WS_PORT"]
+3 -4
View File
@@ -36,12 +36,11 @@ RUN make build BINS=openim-msgtransfer
FROM ghcr.io/openim-sigs/openim-bash-image:latest
ENV OS ${OS}
ENV ARCH ${ARCH}
WORKDIR /openim/openim-server
COPY --from=builder /openim/openim-server/_output/bin/platforms /openim/openim-server/_output/bin/platforms
COPY --from=builder /openim/openim-server/config /openim/openim-server/config
CMD ${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-msgtransfer
RUN cp -r ${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-msgtransfer /usr/bin/openim-msgtransfer
ENTRYPOINT ["bash", "-c", "if [[ -n $PROMETHEUS_PORT ]]; then openim-msgtransfer -c $CONFIG --prometheus_port $PROMETHEUS_PORT; else openim-msgtransfer -c $CONFIG; fi"]
+9 -5
View File
@@ -15,6 +15,7 @@
# OpenIM base image: https://github.com/openim-sigs/openim-base-image
# Set go mod installation source and proxy
# docker run -e "PORT=10003" -e "PROMETHEUSORT=4321" --network host -it 67ef891ad1ff
FROM golang:1.20 AS builder
@@ -38,12 +39,15 @@ FROM ghcr.io/openim-sigs/openim-bash-image:latest
WORKDIR /openim/openim-server
ENV OS ${OS}
ENV ARCH ${ARCH}
COPY --from=builder /openim/openim-server/_output/bin/platforms /openim/openim-server/_output/bin/platforms
COPY --from=builder /openim/openim-server/config /openim/openim-server/config
EXPOSE 10170
ENV PORT 10170 \
PROMETHEUS_PORT 20170 \
CONFIG=/openim/openim-server/config
CMD ${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-push --port 10170
EXPOSE $PORT
RUN cp -r ${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-push /usr/bin/openim-push
ENTRYPOINT ["bash", "-c", "if [[ -n $PROMETHEUS_PORT ]]; then openim-push -c $CONFIG --port $PORT --prometheus_port $PROMETHEUS_PORT; else openim-push -c $CONFIG --port $PORT; fi"]
+8 -9
View File
@@ -33,21 +33,20 @@ COPY . .
RUN make clean
# RUN make build BINS=openim-rpc
RUN CGO_ENABLED=0 go build -ldflags="-w -s" -o ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-auth ./cmd/openim-rpc/openim-rpc-auth
RUN make build BINS=openim-rpc-auth
FROM ghcr.io/openim-sigs/openim-bash-image:latest
WORKDIR /openim/openim-server
ENV OS ${OS}
ENV ARCH ${ARCH}
COPY --from=builder /openim/openim-server/_output/bin/platforms /openim/openim-server/_output/bin/platforms/
COPY --from=builder /openim/openim-server/config /openim/openim-server/config
EXPOSE 10160
ENV PORT 10160
ENV CONFIG=/openim/openim-server/config
# ENTRYPOINT
CMD ["bash", "-c","${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-rpc-auth --port 10160 -c ${SERVER_WORKDIR}/config"]
EXPOSE $PORT
RUN cp -r ${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-rpc-auth /usr/bin/openim-rpc-auth
ENTRYPOINT ["bash", "-c", "if [[ -n $PROMETHEUS_PORT ]]; then "openim-rpc-auth --port $PORT -c $CONFIG" --prometheus_port $PROMETHEUS_PORT; else "openim-rpc-auth --port $PORT -c $CONFIG"; fi"]
+10 -15
View File
@@ -33,27 +33,22 @@ COPY . .
RUN make clean
RUN make build BINS=openim-rpc
# RUN CGO_ENABLED=0 go build -ldflags="-w -s" -o ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-conversation ./cmd/openim-rpc/openim-rpc-conversation
RUN rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-friend && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-group && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-msg && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-third && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-user && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-auth
RUN make build BINS=openim-rpc-conversation
FROM ghcr.io/openim-sigs/openim-bash-image:latest
WORKDIR /openim/openim-server
ENV OS ${OS}
ENV ARCH ${ARCH}
COPY --from=builder /openim/openim-server/_output/bin/platforms /openim/openim-server/_output/bin/platforms/
COPY --from=builder /openim/openim-server/config /openim/openim-server/config
EXPOSE 10230
EXPOSE 20230
ENV PORT 10230 \
PROMETHEUS_PORT 20230 \
CONFIG=/openim/openim-server/config
CMD ["bash", "-c","${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-rpc-conversation --port 10230 --prometheus_port 20230 -c ${SERVER_WORKDIR}/config"]
EXPOSE $PORT
EXPOSE $PROMETHEUS_PORT
RUN cp -r ${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-rpc-conversation /usr/bin/openim-rpc-conversation
ENTRYPOINT ["bash", "-c", "if [[ -n $PROMETHEUS_PORT ]]; then "openim-rpc-conversation --port $PORT -c $CONFIG" --prometheus_port $PROMETHEUS_PORT; else "openim-rpc-conversation --port $PORT -c $CONFIG"; fi"]
+10 -15
View File
@@ -33,27 +33,22 @@ COPY . .
RUN make clean
RUN make build BINS=openim-rpc
# RUN CGO_ENABLED=0 go build -ldflags="-w -s" -o ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-friend ./cmd/openim-rpc/openim-rpc-friend
RUN rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-group && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-msg && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-third && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-user && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-conversation && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-auth
RUN make build BINS=openim-rpc-friend
FROM ghcr.io/openim-sigs/openim-bash-image:latest
WORKDIR /openim/openim-server
ENV OS ${OS}
ENV ARCH ${ARCH}
COPY --from=builder /openim/openim-server/_output/bin/platforms /openim/openim-server/_output/bin/platforms/
COPY --from=builder /openim/openim-server/config /openim/openim-server/config
EXPOSE 10120
EXPOSE 20120
ENV PORT 10120 \
PROMETHEUS_PORT 20120 \
CONFIG=/openim/openim-server/config
CMD ["bash", "-c","${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-rpc-friend --port 10120 --prometheus_port 20120 -c ${SERVER_WORKDIR}/config"]
EXPOSE $PORT
EXPOSE $PROMETHEUS_PORT
RUN cp -r ${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-rpc-friend /usr/bin/openim-rpc-friend
ENTRYPOINT ["bash", "-c", "if [[ -n $PROMETHEUS_PORT ]]; then "openim-rpc-friend --port $PORT -c $CONFIG" --prometheus_port $PROMETHEUS_PORT; else "openim-rpc-friend --port $PORT -c $CONFIG"; fi"]
+10 -15
View File
@@ -33,27 +33,22 @@ COPY . .
RUN make clean
RUN make build BINS=openim-rpc
# RUN CGO_ENABLED=0 go build -ldflags="-w -s" -o ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-group ./cmd/openim-rpc/openim-rpc-group
RUN rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-friend && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-msg && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-third && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-user && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-conversation && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-auth
RUN make build BINS=openim-rpc-group
FROM ghcr.io/openim-sigs/openim-bash-image:latest
WORKDIR /openim/openim-server
ENV OS ${OS}
ENV ARCH ${ARCH}
COPY --from=builder /openim/openim-server/_output/bin/platforms /openim/openim-server/_output/bin/platforms/
COPY --from=builder /openim/openim-server/config /openim/openim-server/config
EXPOSE 10150
EXPOSE 20150
ENV PORT 10150 \
PROMETHEUS_PORT 20150 \
CONFIG=/openim/openim-server/config
CMD ["bash", "-c","${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-rpc-group --port 10150 --prometheus_port 20150 -c ${SERVER_WORKDIR}/config"]
EXPOSE $PORT
EXPOSE $PROMETHEUS_PORT
RUN cp -r ${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-rpc-group /usr/bin/openim-rpc-group
ENTRYPOINT ["bash", "-c", "if [[ -n $PROMETHEUS_PORT ]]; then "openim-rpc-group --port $PORT -c $CONFIG" --prometheus_port $PROMETHEUS_PORT; else "openim-rpc-group --port $PORT -c $CONFIG"; fi"]
+10 -15
View File
@@ -33,27 +33,22 @@ COPY . .
RUN make clean
RUN make build BINS=openim-rpc
# RUN CGO_ENABLED=0 go build -ldflags="-w -s" -o ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-msg ./cmd/openim-rpc/openim-rpc-msg
RUN rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-friend && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-group && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-third && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-user && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-conversation && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-auth
RUN make build BINS=openim-rpc-msg
FROM ghcr.io/openim-sigs/openim-bash-image:latest
WORKDIR /openim/openim-server
ENV OS ${OS}
ENV ARCH ${ARCH}
COPY --from=builder /openim/openim-server/_output/bin/platforms /openim/openim-server/_output/bin/platforms/
COPY --from=builder /openim/openim-server/config /openim/openim-server/config
EXPOSE 10130
EXPOSE 20130
ENV PORT 10130 \
PROMETHEUS_PORT 20130 \
CONFIG=/openim/openim-server/config
CMD ["bash", "-c","${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-rpc-msg --port 10130 --prometheus_port 20130 -c ${SERVER_WORKDIR}/config"]
EXPOSE $PORT
EXPOSE $PROMETHEUS_PORT
RUN cp -r ${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-rpc-msg /usr/bin/openim-rpc-msg
ENTRYPOINT ["bash", "-c", "if [[ -n $PROMETHEUS_PORT ]]; then "openim-rpc-msg --port $PORT -c $CONFIG" --prometheus_port $PROMETHEUS_PORT; else "openim-rpc-msg --port $PORT -c $CONFIG"; fi"]
+8 -13
View File
@@ -33,26 +33,21 @@ COPY . .
RUN make clean
RUN make build BINS=openim-rpc
# RUN CGO_ENABLED=0 go build -ldflags="-w -s" -o ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-third ./cmd/openim-rpc/openim-rpc-third
RUN make build BINS=openim-rpc-third
RUN rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-friend && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-group && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-msg && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-user && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-conversation && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-auth
FROM ghcr.io/openim-sigs/openim-bash-image:latest
WORKDIR /openim/openim-server
ENV OS ${OS}
ENV ARCH ${ARCH}
COPY --from=builder /openim/openim-server/_output/bin/platforms /openim/openim-server/_output/bin/platforms/
COPY --from=builder /openim/openim-server/config /openim/openim-server/config
EXPOSE 10200
ENV PORT 10200 \
CONFIG=/openim/openim-server/config
CMD ["bash", "-c","${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-rpc-third --port 10200 -c ${SERVER_WORKDIR}/config"]
EXPOSE $PORT
RUN cp -r ${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-rpc-third /usr/bin/openim-rpc-third
ENTRYPOINT ["bash", "-c", "if [[ -n $PROMETHEUS_PORT ]]; then "openim-rpc-third --port $PORT -c $CONFIG" --prometheus_port $PROMETHEUS_PORT; else "openim-rpc-third --port $PORT -c $CONFIG"; fi"]
+8 -14
View File
@@ -33,26 +33,20 @@ COPY . .
RUN make clean
RUN make build BINS=openim-rpc
# RUN CGO_ENABLED=0 go build -ldflags="-w -s" -o ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-user ./cmd/openim-rpc/openim-rpc-user
RUN rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-friend && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-group && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-msg && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-third && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-conversation && \
rm -rf ./_output/bin/platforms/$(go env GOOS)/$(go env GOARCH)/openim-rpc-auth
RUN make build BINS=openim-rpc-user
FROM ghcr.io/openim-sigs/openim-bash-image:latest
WORKDIR /openim/openim-server
ENV OS ${OS}
ENV ARCH ${ARCH}
COPY --from=builder /openim/openim-server/_output/bin/platforms /openim/openim-server/_output/bin/platforms/
COPY --from=builder /openim/openim-server/config /openim/openim-server/config
EXPOSE 10110
ENV PORT 10110 \
CONFIG=/openim/openim-server/config
CMD ["bash", "-c","${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-rpc-user --port 10110 -c ${SERVER_WORKDIR}/config"]
EXPOSE $PORT
RUN cp -r ${OPENIM_SERVER_BINDIR}/platforms/$(get_os)/$(get_arch)/openim-rpc-user /usr/bin/openim-rpc-user
ENTRYPOINT ["bash", "-c", "if [[ -n $PROMETHEUS_PORT ]]; then "openim-rpc-user --port $PORT -c $CONFIG" --prometheus_port $PROMETHEUS_PORT; else "openim-rpc-user --port $PORT -c $CONFIG"; fi"]
+19 -20
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,27 +132,26 @@ api:
# minio.signEndpoint is minio public network address
object:
enable: "minio"
apiURL: "http://14.153.17.42:10002"
apiURL: "http://127.0.0.1:10002"
minio:
bucket: "openim"
endpoint: "http://127.0.0.1:10005"
accessKeyID: "root"
secretAccessKey: "openIM123"
sessionToken: ''
signEndpoint: "http://14.153.17.42:10005"
sessionToken: ""
signEndpoint: "http://127.0.0.1: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
@@ -194,11 +193,11 @@ rpcRegisterName:
# Whether to output in json format
# Whether to include stack trace in logs
log:
storageLocation: /root/workspaces/openim/openim-server/logs/
storageLocation: ../../../../../logs/
rotationTime: 24
remainRotationCount: 2
remainLogLevel: 6
isStdout: false
isStdout: false
isJson: false
withStack: false
+2 -2
View File
@@ -104,7 +104,7 @@ services:
# image: openim/openim-server:main
container_name: openim-server
healthcheck:
test: ["CMD-SHELL", "./scripts/check-all.sh"]
test: ["CMD", "./scripts/check-all.sh"]
interval: 30s
timeout: 10s
retries: 5
@@ -156,4 +156,4 @@ services:
# container_name: node-exporter
# restart: always
# ports:
# - "9100:9100"
# - "9100:9100"
+1 -1
View File
@@ -1,4 +1,4 @@
go 1.20.0
go 1.18
use (
.
+14
View File
@@ -1,3 +1,17 @@
// Copyright © 2023 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package kafka
import (
+14
View File
@@ -1,3 +1,17 @@
// Copyright © 2023 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package tls
import (
+1 -1
View File
@@ -20,7 +20,7 @@
# package, the build will produce executable files under $(OUT_DIR)/bin/platforms OR $(OUT_DIR)/bin—tools/platforms.
# If not specified, "everything" will be built.
# Usage: `scripts/build-all-service.sh`.
# Example: `hack/build-go.sh WHAT=cmd/kubelet`.
# Example: `scripts/build-go.sh WHAT=cmd/kubelet`.
set -o errexit
set -o nounset
+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
+5
View File
@@ -24,9 +24,14 @@ set -o pipefail
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
"${OPENIM_ROOT}"/scripts/start-all.sh
sleep 5
"${OPENIM_ROOT}"/scripts/check-all.sh
tail -f ${LOG_FILE}
+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"
+89
View File
@@ -0,0 +1,89 @@
#!/usr/bin/env bash
# Copyright © 2023 OpenIM. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# -----------------------------------------------------------------------------
# init-githooks.sh
#
# This script assists in managing Git hooks for the OpenIM project.
# When executed:
# 1. It prompts the user to enable git hooks.
# 2. If the user accepts, it copies predefined hook scripts to the appropriate
# Git directory, making them executable.
# 3. If requested, it can delete the added hooks.
#
# This script equal runs `make init-githooks` command.
# Usage:
# ./init-githooks.sh Prompt to enable git hooks.
# ./init-githooks.sh --delete Delete previously added git hooks.
# ./init-githooks.sh --help Show the help message.
#
# Example: `scripts/build-go.sh --help`.
# Documentation & related context can be found at:
# https://gist.github.com/cubxxw/126b72104ac0b0ca484c9db09c3e5694
#
# -----------------------------------------------------------------------------
OPENIM_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
HOOKS_DIR=".git/hooks"
help_info() {
echo "Usage: $0 [options]"
echo
echo "This script helps to manage git hooks."
echo
echo "Options:"
echo " -h, --help Show this help message and exit."
echo " -d, --delete Delete the hooks that have been added."
echo " By default, it will prompt to enable git hooks."
}
delete_hooks() {
for file in scripts/githooks/*.sh; do
hook_name=$(basename "$file" .sh)
rm -f "$HOOKS_DIR/$hook_name"
done
echo "Git hooks have been deleted."
}
enable_hooks() {
echo "Would you like to enable git hooks mode? [y/n]"
read -r choice
if [[ $choice == "y" || $choice == "Y" ]]; then
for file in scripts/githooks/*.sh; do
cp -f "$file" "$HOOKS_DIR/$(basename "$file" .sh)"
done
chmod +x $HOOKS_DIR/*
echo "Git hooks mode has been enabled."
echo "With git hooks enabled, every time you perform a git action (e.g. git commit), the corresponding hooks script will be triggered automatically."
echo "This means that if the size of the file you're committing exceeds the set limit (e.g. 42MB), the commit will be rejected."
else
echo "Git hooks mode remains disabled."
fi
}
case "$1" in
-h|--help)
help_info
;;
-d|--delete)
delete_hooks
;;
*)
enable_hooks
;;
esac
+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[@]}
+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[@]}"
}
+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:
-4
View File
@@ -140,10 +140,6 @@ ifndef V
MAKEFLAGS += --no-print-directory
endif
# Copy githook scripts when execute makefile
# TODO! GIT_FILE_SIZE_LIMIT=42000000 git commit -m "This commit is allowed file sizes up to 42MB"
COPY_GITHOOK:=$(shell cp -f scripts/githooks/* .git/hooks/; chmod +x .git/hooks/*)
# COMMA: Concatenate multiple strings to form a list of strings
COMMA := ,
# SPACE: Used to separate strings
+6
View File
@@ -28,6 +28,12 @@ gen.init:
@echo "===========> Initializing openim server project"
@${ROOT_DIR}/scripts/init-config.sh
## gen.init-githooks: Initialize git hooks ✨
.PHONY: gen.init-githooks
gen.init-githooks:
@echo "===========> Initializing git hooks"
@${ROOT_DIR}/scripts/init-githooks.sh
## gen.run: Generate necessary files and docs ✨
.PHONY: gen.run
#gen.run: gen.errcode gen.docgo
+7 -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
@@ -62,16 +64,20 @@ function execute_scripts() {
openim::log::errexit "Script ${script_path##*/} is missing or not executable."
fi
done
sleep 0.5
}
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[@]}
+1 -1
View File
@@ -1,6 +1,6 @@
module github.com/OpenIMSDK/Open-IM-Server/test/typecheck
go 1.20
go 1.18
require golang.org/x/tools v0.12.0
+1 -1
View File
@@ -1,3 +1,3 @@
module github.com/OpenIMSDK/Open-IM-Server/tools/changelog
go 1.20
go 1.18
+1 -1
View File
@@ -1,3 +1,3 @@
module github.com/OpenIMSDK/Open-IM-Server/tools/component
go 1.19
go 1.18
+1 -1
View File
@@ -1,6 +1,6 @@
module github.com/OpenIMSDK/Open-IM-Server/tools/imctl
go 1.20
go 1.18
require (
github.com/MakeNowJust/heredoc/v2 v2.0.1
+1 -1
View File
@@ -1,3 +1,3 @@
module github.com/OpenIMSDK/Open-IM-Server/tools/infra
go 1.20
go 1.18
+1 -1
View File
@@ -1,5 +1,5 @@
module github.com/OpenIMSDK/Open-IM-Server/tools/ncpu
go 1.20
go 1.18
require go.uber.org/automaxprocs v1.5.3
+1 -1
View File
@@ -1,3 +1,3 @@
module github.com/OpenIMSDK/Open-IM-Server/tools/versionchecker
go 1.20.0
go 1.18
+14
View File
@@ -1,3 +1,17 @@
// Copyright © 2023 OpenIM. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package main
import (
+1 -1
View File
@@ -1,6 +1,6 @@
module github.com/OpenIMSDK/Open-IM-Server/tools/yamlfmt
go 1.20
go 1.18
require (
github.com/likexian/gokit v0.25.13