巴拉迪维 3 роки тому
батько
коміт
dda41fa902
4 змінених файлів з 65 додано та 47 видалено
  1. 2 1
      .dockerignore
  2. 2 1
      .gitignore
  3. 27 39
      Makefile
  4. 34 6
      README.md

+ 2 - 1
.dockerignore

@@ -1,3 +1,4 @@
 .vscode
 docker/container-data/*
-tmp
+tmp
+build

+ 2 - 1
.gitignore

@@ -2,4 +2,5 @@
 docker/container-data/*
 !docker/container-data/.keep
 tmp
-.DS_Store
+.DS_Store
+build

+ 27 - 39
Makefile

@@ -1,56 +1,48 @@
-.PHONY: all build compress build-macos build-windows compress-macos compress-windows clean test check cover run lint help
+.PHONY: all build compress build-macos build-linux build-windows compress-macos compress-linux compress-windows help
 
 BUILD_PATH=./build
 APPNAME=ohurlshortener
 
-all: check test build compress
-build: build-macos build-windows
-compress: compress-macos compress-windows
+all: build compress
+build: build-macos build-linux build-windows
+compress: compress-macos compress-linux compress-windows
 
 build-macos:
 	@echo "开始 macOS 可执行程序编译..."
-	CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags="-s -w" -o $(BUILD_PATH)/$(APPNAME)
+	CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags="-s -w" -o $(BUILD_PATH)/$(APPNAME)-darwin-x86_64
 	@echo "macOS 可执行程序编译完成..."
 
+build-linux:
+	@echo "开始 Linux 可执行程序编译..."
+	CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o $(BUILD_PATH)/$(APPNAME)-linux-x86_64
+	@echo "Linux 可执行程序编译完成..."	
+
 build-windows:
 	@echo "开始 Windows 可执行程序编译..."
-	CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o $(BUILD_PATH)/$(APPNAME)_windows
+	CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o $(BUILD_PATH)/$(APPNAME)-windows-x86_64.exe
 	@echo "Windows 可执行程序编译完成..."
 
 compress-macos:
 	@echo "macOS 可执行程序压缩开始..."
-	mv $(BUILD_PATH)/$(APPNAME) $(BUILD_PATH)/$(APPNAME)_tmp
-	upx --best -o $(BUILD_PATH)/$(APPNAME) $(BUILD_PATH)/$(APPNAME)_tmp
-	rm -fr $(BUILD_PATH)/$(APPNAME)_tmp
+	mv $(BUILD_PATH)/$(APPNAME)-darwin-x86_64 $(BUILD_PATH)/$(APPNAME)-darwin-x86_64_tmp
+	upx --best -o $(BUILD_PATH)/$(APPNAME)-darwin-x86_64 $(BUILD_PATH)/$(APPNAME)-darwin-x86_64_tmp
+	rm -fr $(BUILD_PATH)/$(APPNAME)-darwin-x86_64_tmp
 	@echo "macOS 可执行程序压缩完成..."
 
+compress-linux:
+	@echo "Linux 可执行程序压缩开始..."
+	mv $(BUILD_PATH)/$(APPNAME)-linux-x86_64 $(BUILD_PATH)/$(APPNAME)-linux-x86_64_tmp
+	upx --best -o $(BUILD_PATH)/$(APPNAME)-linux-x86_64 $(BUILD_PATH)/$(APPNAME)-linux-x86_64_tmp
+	rm -fr $(BUILD_PATH)/$(APPNAME)-linux-x86_64_tmp
+	@echo "Linux 可执行程序压缩完成..."	
+
 compress-windows:
 	@echo "Windows 可执行程序压缩开始..."
-	mv $(BUILD_PATH)/$(APPNAME)_windows $(BUILD_PATH)/$(APPNAME)_windows_tmp
-	upx --best -o $(BUILD_PATH)/$(APPNAME)_windows $(BUILD_PATH)/$(APPNAME)_windows_tmp
-	rm -fr $(BUILD_PATH)/$(APPNAME)_windows_tmp
+	mv $(BUILD_PATH)/$(APPNAME)-windows-x86_64.exe $(BUILD_PATH)/$(APPNAME)-windows-x86_64.exe_tmp
+	upx --best -o $(BUILD_PATH)/$(APPNAME)-windows-x86_64.exe $(BUILD_PATH)/$(APPNAME)-windows-x86_64.exe_tmp
+	rm -fr $(BUILD_PATH)/$(APPNAME)-windows-x86_64.exe_tmp
 	@echo "Windows 可执行程序压缩完成..."
 
-clean:
-	@go clean
-
-test:
-	@go test
-
-check:
-	@go fmt ./
-	@go vet ./
-
-cover:
-	@go test -coverprofile xx.out
-	@go tool cover -html=xx.out
-
-run:
-	$(BUILD_PATH)/$(APPNAME)
-
-lint:
-	golangci-lint run --enable-all
-
 help:
 	@echo "ohurlshortener 构建命令集,用于快速构建服务。"
 	@echo ""
@@ -63,15 +55,11 @@ help:
 	@echo "	make build            编译生成全部可执行程序"
 	@echo "	make compress         压缩全部可执行程序"
 	@echo "	make build-macos      构建 masOS 可执行程序"
+	@echo "	make build-linux      构建 Linux 可执行程序"	
 	@echo "	make build-windows    构建 Windows 可执行程序"
 	@echo "	make compress-macos   压缩 masOS 可执行程序"
-	@echo "	make compress-windows 压缩 Windows 可执行程序"
-	@echo "	make clean            清理中间目标文件"
-	@echo "	make test             执行测试"
-	@echo "	make check            格式化 Go 代码"
-	@echo "	make cover            测试覆盖率"
-	@echo "	make run              运行程序"
-	@echo "	make lint             执行代码检查"
+	@echo "	make compress-linux   压缩 Linux 可执行程序"
+	@echo "	make compress-windows 压缩 Windows 可执行程序"	
 	@echo "	make help             查看帮助"
 
 

+ 34 - 6
README.md

@@ -1,22 +1,50 @@
 # ohUrlShortener
 
-适合中小型社区网站使用的短链接服务系统,支持短链接成产、查询及302转向,并顺带简单的点击量统计
-
+ 适合中小型社区网站使用的短链接服务系统,支持短链接生产、查询及302转向,并自带点击量统计、独立IP数统计、访问日志 
 
 ![Screenshot](screenshot.jpg)
 
-## Docker One Step Start
+## 部署及构建方式
+
+### 1. Docker One Step Start
 
 支持 Docker 一步启动所有服务,运行 `docker/one_step_start.sh` ,该命令将会:  
-1. 构建 `docker/admin.Dockerfile` 镜像及服务
-1. 构建 `docker/portal.Dockerfile` 镜像及服务
+1. 拉取 [`baratsemet/ohurlshortener-admin`](https://hub.docker.com/r/baratsemet/ohurlshortener-admin) 镜像(本地构建可查看 `docker/admin.Dockerfile`)
+1. 拉取 [`baratsemet/ohurlshortener-portal`](https://hub.docker.com/r/baratsemet/ohurlshortener-portal) 镜像(本地构建镜像可查看`docker/portal.Dockerfile`)
 1. 通过 `docker/services.yml` 其他描述内容构建 `redis` 和 `postgresql` 镜像及服务,并对其运行状态做判断,等待缓存和数据库服务正常之后,再启动其他必要服务 
 1. 构建名为 `network_ohurlshortener` 的虚拟网络供上述服务使用
 1. 开启本机 `9091`、`9092` 端口分别应对 `ohUrlShortener-Portal` 及 `ohUrlShortener-Admin` 应用
 
+### 2. 通过 `Makefile` 构建
+
+查看支持的构建命令: 
+```
+make help
+```
+例如:构建 linux 平台对应的可执行文件:
+```
+make build-linux
+```
+例如:压缩 linux 平台对应的可执行文件:
+```
+make compress-linux
+```
+
+`make build-macos` 构建 macOS 版本  
+如果安装了 upx 还可以听过 `make compress-macos` 对可执行文件压缩 
+
+### 3. 使用 Go 编译
+
+项目根目录下执行 
+```
+go mod download && go build -o ohurlshortener .
+````
+
 ## 启动参数说明  
 
-`ohurlshortener [-c 配置文件路径] [-s 需要启动的服务(admin或portal,省略次参数同时启动两个服务)]`
+```
+ohurlshortener [-c config_file] [-s admin|portal|<omit to start both>]
+```
 
 ## 配置文件说明
 根目录下 `config.ini` 中存放着关于 ohUrlShortener 短链接系统的一些必要配置,请在启动应用之前确保这些配置的正确性