Skip to content

Commit b4f27ee

Browse files
authored
Merge pull request #289 from ArtisanCloud/dev/michaelhu
Dev/michaelhu
2 parents d2478b4 + 7921746 commit b4f27ee

File tree

404 files changed

+3450
-2362
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

404 files changed

+3450
-2362
lines changed

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ etc/powerx-*
1414
etc/powerx.yaml
1515
.deploy/*
1616
.build
17-
powerx.go
17+
./powerx.go
1818
powerxctl
1919
powerx
2020
/data/*
2121

2222
!internal/uc/powerx
2323
!cmd/server/powerx.go
2424
/plugins
25-
wechat
25+
./wechat

.run/build-goctl-powerx-apis.run.xml

Lines changed: 0 additions & 8 deletions
This file was deleted.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<component name="ProjectRunConfigurationManager">
2-
<configuration default="false" name="app-build-linux" type="MAKEFILE_TARGET_RUN_CONFIGURATION" factoryName="Makefile">
2+
<configuration default="false" name="make app-build-linux" type="MAKEFILE_TARGET_RUN_CONFIGURATION" factoryName="Makefile">
33
<makefile filename="$PROJECT_DIR$/Makefile" target="app-build-linux" workingDirectory="" arguments="">
44
<envs />
55
</makefile>

.run/make app-build-macos.run.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="make app-build-macos" type="MAKEFILE_TARGET_RUN_CONFIGURATION" factoryName="Makefile">
3+
<makefile filename="$PROJECT_DIR$/Makefile" target="app-build-macos" workingDirectory="" arguments="">
4+
<envs />
5+
</makefile>
6+
<method v="2" />
7+
</configuration>
8+
</component>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<component name="ProjectRunConfigurationManager">
2-
<configuration default="false" name="app-build-windows" type="MAKEFILE_TARGET_RUN_CONFIGURATION" factoryName="Makefile">
2+
<configuration default="false" name="make app-build-windows" type="MAKEFILE_TARGET_RUN_CONFIGURATION" factoryName="Makefile">
33
<makefile filename="$PROJECT_DIR$/Makefile" target="app-build-windows" workingDirectory="" arguments="">
44
<envs />
55
</makefile>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<component name="ProjectRunConfigurationManager">
2-
<configuration default="false" name="app-init-db" type="MAKEFILE_TARGET_RUN_CONFIGURATION" factoryName="Makefile">
2+
<configuration default="false" name="make app-init-db" type="MAKEFILE_TARGET_RUN_CONFIGURATION" factoryName="Makefile">
33
<makefile filename="$PROJECT_DIR$/Makefile" target="app-init-db" workingDirectory="" arguments="">
44
<envs />
55
</makefile>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<component name="ProjectRunConfigurationManager">
2-
<configuration default="false" name="app-init" type="MAKEFILE_TARGET_RUN_CONFIGURATION" factoryName="Makefile">
2+
<configuration default="false" name="make app-init" type="MAKEFILE_TARGET_RUN_CONFIGURATION" factoryName="Makefile">
33
<makefile filename="$PROJECT_DIR$/Makefile" target="app-init" workingDirectory="" arguments="">
44
<envs />
55
</makefile>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="make goctl-powerx-apis" type="MAKEFILE_TARGET_RUN_CONFIGURATION" factoryName="Makefile">
3+
<makefile filename="$PROJECT_DIR$/Makefile" target="goctl-powerx-apis" workingDirectory="$PROJECT_DIR$" arguments="">
4+
<envs />
5+
</makefile>
6+
<method v="2" />
7+
</configuration>
8+
</component>

Dockerfile

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# 第一阶段
2+
FROM golang:1.21-alpine AS builder
3+
4+
# 配置go proxy为中国国内proxy
5+
ENV GOPROXY=https://goproxy.cn,direct
6+
7+
# 拷贝当前目录到docker内
8+
WORKDIR /app
9+
RUN ls -l
10+
COPY ./ /app/
11+
12+
# 默认使用 linux 架构
13+
ARG TARGETARCH=amd64
14+
ARG TARGETOS=linux
15+
16+
# 编译不同架构的文件
17+
RUN CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o /app/powerx_$TARGETARCH $(BUILD_EXE_PATH)
18+
RUN CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o /app/powerxctl_$TARGETARCH $(BUILD_CTL_PATH)
19+
20+
21+
22+
23+
# 第二阶段
24+
FROM alpine:latest
25+
26+
# 安装编译工具和依赖项
27+
RUN apk update && apk add build-base
28+
29+
# 拷贝文件
30+
COPY --from=builder /app/powerxctl /app/powerxctl
31+
COPY --from=builder /app/Makefile /app/Makefile
32+
COPY --from=builder /app/powerx /app/powerx
33+
COPY --from=builder /app/etc/ /app/etc/
34+
35+
RUN chmod +x /app/powerxctl
36+
RUN chmod +x /app/Makefile
37+
RUN chmod +x /app/powerx
38+
39+
WORKDIR /app
40+
41+
EXPOSE 8888
42+
43+
# 运行可执行文件
44+
CMD ["make", "-f", "/app/Makefile","-C", "/app", "app-init"]

Makefile

Lines changed: 19 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
CURRENT_DIR := $(shell pwd)
1+
ifeq ($(OS),Windows_NT)
2+
CURRENT_DIR := $(shell cd)
3+
else
4+
CURRENT_DIR := $(shell pwd)
5+
endif
6+
27
CONFIG_FILE := $(CURRENT_DIR)/etc/powerx.yaml
38

49
# 设定需要编译的go文件目录
@@ -7,84 +12,21 @@ BUILD_CTL_PATH := $(CURRENT_DIR)/cmd/ctl/powerxctl.go
712

813

914
PATH_BUILD := $(CURRENT_DIR)/.build
10-
PATH_BUILD_LINUX := $(PATH_BUILD)/linux
11-
PATH_BUILD_WINDOWS := $(PATH_BUILD)/windows
12-
PATH_BUILD_MAC_OS := $(PATH_BUILD)/macos
1315

1416
# 将编译好的执行文件,放入根目录下
1517
POWERX_EXE_PATH:=$(CURRENT_DIR)/powerx
1618
POWERX_CTL_EXE_PATH:=$(CURRENT_DIR)/powerxctl
1719

18-
POWERX_EXE_PATH_LINUX := $(PATH_BUILD_LINUX)/powerx
19-
POWERX_CTL_PATH_LINUX := $(PATH_BUILD_LINUX)/powerxctl
20-
21-
POWERX_EXE_PATH_WINDOWS := $(PATH_BUILD_WINDOWS)/powerx.exe
22-
POWERX_CTL_PATH_WINDOWS := $(PATH_BUILD_WINDOWS)/powerxctl.exe
23-
24-
POWERX_EXE_PATH_MAC_OS := $(PATH_BUILD_MAC_OS)/powerx
25-
POWERX_CTL_PATH_MAC_OS := $(PATH_BUILD_MAC_OS)/powerxctl
26-
27-
DEPLOY_POWERX_EXE_PATH:=$(CURRENT_DIR)/../PowerXDocker/powerx
28-
DEPLOY_POWERX_CTL_EXE_PATH:=$(CURRENT_DIR)/../PowerXDocker/powerxctl
29-
30-
DEPLOY_POWERX_EXE_PATH_WINDOWS:=$(CURRENT_DIR)/../PowerXDocker/powerx.exe
31-
DEPLOY_POWERX_CTL_EXE_PATH_WINDOWS:=$(CURRENT_DIR)/../PowerXDocker/powerxctl.exe
32-
33-
34-
app-init: app-migrate app-seed app-run
35-
app-init-db: app-migrate app-seed
36-
37-
app-migrate:
38-
go build -o $(POWERX_CTL_EXE_PATH) $(BUILD_CTL_PATH)
39-
$(POWERX_CTL_EXE_PATH) database migrate -f $(CONFIG_FILE)
40-
41-
app-seed:
42-
go build -o $(POWERX_CTL_EXE_PATH) $(BUILD_CTL_PATH)
43-
$(POWERX_CTL_EXE_PATH) database seed -f $(CONFIG_FILE)
44-
45-
app-run:
46-
go build -o $(POWERX_EXE_PATH) $(BUILD_EXE_PATH)
47-
$(POWERX_EXE_PATH) -f $(CONFIG_FILE)
48-
49-
50-
# ------
51-
52-
app-build-linux:
53-
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o $(POWERX_EXE_PATH_LINUX) $(BUILD_EXE_PATH)
54-
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o $(POWERX_CTL_PATH_LINUX) $(BUILD_CTL_PATH)
55-
# cp $(POWERX_EXE_PATH_LINUX) $(DEPLOY_POWERX_EXE_PATH)
56-
# cp $(POWERX_CTL_PATH_LINUX) $(DEPLOY_POWERX_CTL_EXE_PATH)
57-
58-
app-build-windows:
59-
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o $(POWERX_EXE_PATH_WINDOWS) $(BUILD_EXE_PATH)
60-
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o $(POWERX_CTL_PATH_WINDOWS) $(BUILD_CTL_PATH)
61-
# cp $(POWERX_EXE_PATH_WINDOWS) $(DEPLOY_POWERX_EXE_PATH_WINDOWS)
62-
# cp $(POWERX_CTL_PATH_WINDOWS) $(DEPLOY_POWERX_CTL_EXE_PATH_WINDOWS)
63-
64-
app-build-macos:
65-
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -o $(POWERX_EXE_PATH_MAC_OS) $(BUILD_EXE_PATH)
66-
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -o $(POWERX_CTL_PATH_MAC_OS) $(BUILD_CTL_PATH)
67-
# cp $(POWERX_EXE_PATH_MAC_OS) $(DEPLOY_POWERX_EXE_PATH)
68-
# cp $(POWERX_CTL_PATH_MAC_OS) $(DEPLOY_POWERX_CTL_EXE_PATH)
69-
70-
# ------
71-
72-
build-goctl-powerx-apis:
73-
goctl api go -api ./api/powerx.api -dir .
74-
75-
76-
77-
# ------
78-
79-
IMAGE_NAME := powerx
80-
IMAGE_TAG := latest
81-
82-
build-image:
83-
docker build -t $(IMAGE_NAME):$(IMAGE_TAG) CURRENT_DIR/deploy/docker
84-
85-
run-container:
86-
docker run -it $(IMAGE_NAME):$(IMAGE_TAG) /bin/bash
87-
88-
89-
90-
20+
export CURRENT_DIR
21+
export CONFIG_FILE
22+
export BUILD_EXE_PATH
23+
export BUILD_CTL_PATH
24+
export PATH_BUILD
25+
export POWERX_EXE_PATH
26+
export POWERX_CTL_EXE_PATH
27+
28+
include makefiles/goctl.mk
29+
include makefiles/app.mk
30+
include makefiles/build/linux.mk
31+
include makefiles/build/macos.mk
32+
include makefiles/build/windows.mk

0 commit comments

Comments
 (0)