Skip to content

ERP 容器化部署指南

本文档提供了使用 Docker 容器化部署 ERP 系统的详细步骤。主要包括两个核心部分:镜像打包和容器创建。

概述

ERP 是一个开源的企业资源规划(ERP)系统,通过容器化部署可以简化安装和维护过程。本部署方案使用自定义 Docker 镜像,确保系统配置的一致性和可重复性。

部署流程分为两个主要阶段:

  1. 构建自定义 Docker 镜像
  2. 创建和管理 Docker 容器

每个阶段都有相应的脚本工具支持,使部署过程更加自动化和可靠。

1 镜像打包

  • 执行程序build-custom-image.sh
  • 参数配置
    • image_tag="hzcork-ERP:v15"(主要生成镜像的名称)

执行命令:

shell
./build-custom-image.sh

在本地 Docker 服务器中创建镜像。


2 容器创建

  • 执行程序manage-ERP.sh
  • 参数配置:
参数名示例值说明
COMPOSE_FILEpwd_hzcork.yml使用的 yml 配置文件
PROJECT_NAMEhzcork-v15容器名称
CUSTOM_ERP_IMAGEhzcork-ERP:v15使用的镜像名称

执行命令:

shell
./manage-ERP.sh start

⚠️ 需要查看 docker 日志确认安装完成,必须等 ERP 安装完成。

然后执行:

shell
./manage-ERP.sh install

主要安装应用。


2.1 容器启动

  • 执行程序manage-ERP.sh
  • 命令start
  • 功能:启动所有容器

执行命令:

shell
./manage-ERP.sh start

启动后可通过 http://localhost:8080 访问系统。

如需指定代理 IP(便于访问 GitHub):

shell
./manage-ERP.sh start --proxy-ip=10.0.0.215

2.2 容器停止

  • 命令stop
  • 功能:停止所有容器

执行命令:

shell
./manage-ERP.sh stop

2.3 容器重启

  • 命令restart
  • 功能:重启所有容器

执行命令:

shell
./manage-ERP.sh restart

2.4 容器状态查看

  • 命令status
  • 功能:查看所有容器的运行状态

执行命令:

shell
./manage-ERP.sh status

2.5 容器日志查看

  • 命令logs
  • 功能:查看所有容器的运行日志

执行命令:

shell
./manage-ERP.sh logs

2.6 容器清理

  • 命令clean
  • 功能:停止并删除所有容器和数据卷

执行命令:

shell
./manage-ERP.sh clean

⚠️ 此操作会删除所有数据,请谨慎使用!


2.7 帮助信息

  • 命令help
  • 功能:显示所有可用命令的帮助信息

执行命令:

shell
./manage-ERP.sh help

3 远程镜像维护

3.1 镜像上传

本地镜像下载:

bash
docker pull hello-world

本地镜像上传到服务器:

bash
docker save hello-world:latest | ssh root@10.0.0.171 'docker load'

上传本地 ERP 镜像:

bash
docker save hzcork-ERP:v15.1 | ssh root@10.0.0.171 'docker load'
  • docker save hzcork-ERP:v15.1:将镜像序列化到标准输出。
  • |(管道符):将 docker save 的输出传递给下一个命令。
  • ssh root@10.0.0.171 'docker load':通过 SSH 连接服务器,并在服务器上执行 docker load,从标准输入加载镜像。

镜像较大时建议压缩传输:

bash
docker save hzcork-ERP:v15.1 | gzip | ssh root@10.0.0.171 'gunzip | docker load'

3.2 镜像删除

基本命令格式:

bash
ssh <用户>@<服务器IP或主机> "docker rmi <镜像名称:标签 或 镜像ID>"

如需 sudo 权限:

bash
ssh <用户>@<服务器IP或主机> "sudo docker rmi <镜像名称:标签 或 镜像ID>"

获取要删除镜像的信息(推荐):

  1. 先 SSH 登录服务器:
    bash
    ssh <用户>@<服务器IP或主机>
  2. 查看镜像列表:
    bash
    docker images
    # 或 sudo docker images
    示例输出:
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    my-app              latest              abcdef123456        2 hours ago         200MB
    nginx               alpine              fedfc6103113        3 weeks ago         23.5MB
    ubuntu              20.04               1d622ef86b13        5 weeks ago         72.9MB
  3. 记下你要删除的镜像的 REPOSITORY 和 TAG(如 python:3.9.22-alpine3.22)或 IMAGE ID(如 abcdef123456)。
  4. 退出 SSH 会话。

执行远程删除命令(本地执行):

  • 按名称和标签删除:
    bash
    ssh root@10.0.0.171 "docker rmi python:3.9.22-alpine3.22"