feat: update openim-web

Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com>
This commit is contained in:
Xinwei Xiong(cubxxw-openim)
2023-08-30 17:10:13 +08:00
parent b465caa4d7
commit 80c985ae12
11 changed files with 138 additions and 17 deletions
+33
View File
@@ -0,0 +1,33 @@
# 使用官方Go镜像作为基础镜像
FROM golang:1.21 AS build-env
ENV CGO_ENABLED=0
# 设置工作目录
WORKDIR /app
# 安装curl和unzip工具
#RUN apt-get update && apt-get install -y curl unzip
# 从GitHub下载并解压dist.zip
#RUN curl -LO https://github.com/OpenIMSDK/dist.zip \
# && unzip dist.zip -d ./ \
# && rm dist.zip
# 复制Go代码到容器
COPY . .
# 编译Go代码
RUN go build -o openim-web
# 使用轻量级的基础镜像
FROM debian:buster-slim
# 将编译好的二进制文件和dist资源复制到新的容器
WORKDIR /app
COPY --from=build-env /app/openim-web /app/openim-web
COPY --from=build-env /app/dist /app/dist
# 开放容器的20001端口
EXPOSE 20001
# 指定容器启动命令
ENTRYPOINT ["/app/openim-web"]
@@ -24,14 +24,29 @@ OpenIM Web Service is a lightweight containerized service built with Go. The ser
example
```bash
# ./web -h
Usage of ./web:
$ ./openim-web -h
Usage of ./openim-web:
-distPath string
Path to the distribution (default "/app/dist")
-port string
Port to run the server on (default "20001")
```
Variables can be set as above, Environment variables can also be set
example:
```bash
$ export OPENIM_WEB_DIST_PATH="/app/dist"
$ export OPENIM_WEB_PPRT="11001"
```
Initialize the env configuration file:
```bash
$ make init
```
## Docker Deployment
### Build the Docker Image
@@ -40,16 +55,16 @@ Even though we've implemented automation, it's to make the developer experience
To build the Docker image for OpenIM Web Service:
```
docker build -t openim-web .
```bash
$ docker build -t openim-web .
```
### Run the Docker Container
To run the service:
```
docker run -e DIST_PATH=/app/dist -e PORT=20001 -p 20001:20001 openim-web
```bash
$ docker run -e DIST_PATH=/app/dist -e PORT=20001 -p 20001:20001 openim-web
```
## Configuration
+7
View File
@@ -0,0 +1,7 @@
module github.com/OpenIMSDK/Open-IM-Server/tools/openim-web
go 1.18
require gopkg.in/yaml.v2 v2.4.0
require github.com/NYTimes/gziphandler v1.1.1 // indirect
+10
View File
@@ -0,0 +1,10 @@
github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=
github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
@@ -5,6 +5,8 @@ import (
"log"
"net/http"
"os"
"github.com/NYTimes/gziphandler"
)
var (
@@ -22,7 +24,10 @@ func main() {
distPath := getConfigValue("DIST_PATH", distPathFlag, "/app/dist")
fs := http.FileServer(http.Dir(distPath))
http.Handle("/", fs)
withGzip := gziphandler.GzipHandler(fs)
http.Handle("/", withGzip)
port := getConfigValue("PORT", portFlag, "11001")
log.Printf("Server listening on port %s in %s...", port, distPath)
-5
View File
@@ -1,5 +0,0 @@
module github.com/OpenIMSDK/Open-IM-Server/tools/web
go 1.18
require gopkg.in/yaml.v2 v2.4.0
-4
View File
@@ -1,4 +0,0 @@
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=