golang 项目打包 .exe和 .tar安装包 内部实现安装nginx、mysql 和
时间: 2024-05-16 13:14:39 浏览: 170
打包 Go 项目成为可执行文件和安装包,可以使用一些工具,如 GoReleaser 和 Makefile。下面是一个简单的 Makefile,可以打包成为可执行文件和安装包,并且安装 Nginx 和 MySQL:
```
.PHONY: all clean build package
APP_NAME := myapp
VERSION := 1.0.0
BUILD_DIR := build
DIST_DIR := dist
INSTALL_DIR := /opt/$(APP_NAME)
NGINX_VERSION := 1.19.6
MYSQL_VERSION := 8.0.22
all: clean build package
clean:
@rm -rf $(BUILD_DIR) $(DIST_DIR)
build:
@echo "Building $(APP_NAME)"
@go build -o $(BUILD_DIR)/$(APP_NAME)
package:
@echo "Packaging $(APP_NAME)"
@mkdir -p $(DIST_DIR)
@tar -czvf $(DIST_DIR)/$(APP_NAME)-$(VERSION).tar.gz $(BUILD_DIR)
@go get github.com/goreleaser/goreleaser
@$(GOPATH)/bin/goreleaser
install:
@echo "Installing $(APP_NAME)"
@sudo mkdir -p $(INSTALL_DIR)
@sudo cp $(BUILD_DIR)/$(APP_NAME) $(INSTALL_DIR)
@sudo chown -R root:root $(INSTALL_DIR)
@sudo chmod -R 755 $(INSTALL_DIR)
@sudo apt-get update
@sudo apt-get install -y nginx
@sudo apt-get install -y mysql-server=$(MYSQL_VERSION)
@sudo systemctl restart nginx
@sudo systemctl restart mysql
```
Makefile 做了以下事情:
1. 清除之前的构建和打包结果。
2. 编译 Go 代码成为可执行文件。
3. 打包可执行文件成为 .tar.gz 文件。
4. 使用 GoReleaser 打包成为各种平台的二进制文件和安装包。
5. 安装 Nginx 和 MySQL。
如果你需要更复杂的逻辑和依赖管理,可以考虑使用 Docker 和 Kubernetes 等容器技术。
阅读全文
相关推荐



