Docker 部署
2025/5/14大约 3 分钟部署docker
在本地 Docker 部署
sponge 创建的服务支持 Docker 部署,您可以将服务部署在本机的 Docker 容器中。以下是详细部署步骤:
前提条件
- 本地已安装 Docker 服务
- 已安装 docker-compose 命令
启动、更新服务
切换到服务代码目录
执行以下命令构建镜像并运行服务:
# 构建镜像并在本地 Docker 运行服务,如需更新服务,重新执行此命令即可 make run-docker
命令
make run-docker
内部执行了构建镜像和运行服务两个命令,并且在服务代码目录下的deployments/docker-compose
目录中生成configs
文件夹,在本地 Docker 运行的服务使用的配置是该文件夹下的 YAML 配置文件。
停止服务
# 切换到目录
cd deployments/docker-compose
# 停止服务
docker-compose down
镜像体积优化
如需减小镜像体积,请编辑 scripts/image-build-local.sh
文件,找到 # compressing binary file
部分,取消注释下方代码,可使镜像体积缩减约50%。
在远程服务器 Docker 部署
sponge 创建的服务支持便捷的镜像构建和推送功能。
构建镜像
sponge 服务支持两种方式构建镜像:本地编译构建和容器内编译构建。
方式一:本地编译构建(依赖本地 Go 环境)
切换到服务代码目录
执行命令:
make image-build REPO_HOST=myRepo.com TAG=1.0
方式二:容器内编译构建(无需本地 Go 环境)
切换到服务代码目录
执行命令:
make image-build2 REPO_HOST=myRepo.com TAG=2.0
配置说明
默认使用 Go 1.23 版本,如需修改请编辑 scripts/build/Dockerfile_build
文件,
两种方式均可通过取消 # compressing binary file
下方代码注释来优化镜像体积。
镜像推送指南
首先登录私有仓库:
docker login myRepo.com # 根据提示输入账号密码
推送镜像(确保 REPO_HOST 和 TAG 参数与构建时一致):
make image-push REPO_HOST=myRepo.com TAG=1.0
替代方案
您也可以直接使用 docker push 命令:
docker push myRepo.com/edusys/user:1.0
在远程服务器的 Docker 运行服务
打包服务代码下目录
deployments/docker-compose
脚本和配置,并上传到远程服务器远程服务器。# 打包 docker-compose 脚本和服务配置配置 tar -zcvf your_project_docker.tar.gz deployments/docker-compose # 上传到远程服务器
解压服务配置包到远程服务器的指定目录,
- 修改
docker-compose.yaml
文件中的镜像地址。 - 修改
configs
文件夹下的配置文件。
- 修改
启动服务:
# 切换到解压后的目录 cd your_project_docker # 启动服务 docker-compose up -d
停止服务
# 切换到目录
cd your_project_docker
# 停止服务
docker-compose down