62 lines
1.6 KiB
PowerShell
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
|
|
}
|