libreoffice-micro/run-local.ps1
2026-04-30 19:25:59 +08:00

62 lines
1.6 KiB
PowerShell

# 本地运行 libreoffice-micro 镜像脚本
# 编码: UTF-8
$IMAGE_NAME = "libreoffice-micro"
$IMAGE_TAG = "v1"
$CONTAINER_NAME = "libreoffice-micro"
$NETWORK = "microservicebaseenv_dockercompose_backend"
# 停止并移除旧容器(如存在)
$existing = docker ps -aq --filter "name=^${CONTAINER_NAME}$"
if ($existing) {
Write-Host "停止并移除旧容器: $CONTAINER_NAME"
docker stop $CONTAINER_NAME | Out-Null
docker rm $CONTAINER_NAME | Out-Null
}
# 先构建最新镜像
Write-Host "编译并构建镜像: ${IMAGE_NAME}:${IMAGE_TAG}"
go env -w GOPROXY=https://goproxy.cn,direct
go mod tidy
# 用环境变量强制交叉编译为 Linux amd64 静态二进制,不修改全局 go env
$env:GOOS = "linux"
$env:GOARCH = "amd64"
$env:CGO_ENABLED = "0"
go build -ldflags="-extldflags '-static'" -o ./build/app ./cmd/app.go
$env:GOOS = ""
$env:GOARCH = ""
$env:CGO_ENABLED = ""
if ($LASTEXITCODE -ne 0) {
Write-Host "编译失败,退出"
exit 1
}
docker build -f ./DockerfileForLocal -t "${IMAGE_NAME}:${IMAGE_TAG}" .
if ($LASTEXITCODE -ne 0) {
Write-Host "镜像构建失败,退出"
exit 1
}
# 启动容器
Write-Host "启动容器: $CONTAINER_NAME"
docker run -d `
--name $CONTAINER_NAME `
--network $NETWORK `
-p 20119:20119 `
-e MODE_ENV=xjj `
-e DUBBO_IP_TO_REGISTRY=127.0.0.1 `
--restart unless-stopped `
"${IMAGE_NAME}:${IMAGE_TAG}"
if ($LASTEXITCODE -eq 0) {
Write-Host "容器启动成功"
Write-Host "查看日志: docker logs -f $CONTAINER_NAME"
} else {
Write-Host "容器启动失败"
exit 1
}