当前位置: 首页 > news >正文

Part-DB部署

  本文写的是基于Docker部署Part-DB,参考官方文档。本来是想部署InvenTree,鼓捣几天后差不多行了,后又发现Part-DB,好像也挺符合管理电子物料的需求的,而且还轻量,又和kicad之类的软件有联系,就部署了。具体参考自该官方文档:使用 Docker 安装 Part-DB,配置文件中变量详细信息:https://docs.part-db.de/configuration.html。

部署流程

  • Docker安装流程不赘述,毕竟每个服务器系统安装的方式可能都不同。可以通过下述命令来查看docker是否安装了,安装成功了就能显示版本号,反之失败。

    docker -v
    
  • MySQL数据库版的配置文件

    所有注释均已翻译,且为MySQL数据库版本的,默认是SQLite数据库。

    version: '3.3'
    services:
      partdb:
        container_name: partdb
        # 默认情况下,Part-DB将在端口 8080 下运行,您可以在这里更改它
        ports:
          - '8080:80'
        volumes:
          # 默认情况下
          - ./uploads:/var/www/html/uploads
          - ./public_media:/var/www/html/public/media
          - ./db:/var/www/html/var/db
        restart: unless-stopped
        image: jbtronics/part-db1:latest
        depends_on:
          - database
        environment:
          # 将 SECRET_USER_PASSWORD 替换为下面的 MYSQL_PASSWORD 值
          - DATABASE_URL=mysql://partdb:SECRET_USER_PASSWORD@database:3306/partdb
          # 在 docker 中,日志将被重定向到stderr
          - APP_ENV=docker
    
          # 您可以使用环境变量配置零件数据
          # 下面您可以找到预定义的最基本的环境变量
          # 但是,您可以在此处添加任何其他所需的环境配
          # 有关所有可用选项,请参阅.env文件或https://docs.Part-DB.de/configuration.html
    
          # 服务器范围内默认使用的语言(en、de、ru等)
          - DEFAULT_LANG=en
          # 服务器范围使用的默认时区(例如欧洲/柏林)
          - DEFAULT_TIMEZONE=Europe/Berlin
          # 数据库中使用的货币(在没有设置货币时假定)。这是以后无法更改的,所以请务必将其设置为您所在国家使用的货币
          - BASE_CURRENCY=EUR
          # 此安装的名称。这将在浏览器和网站的标题中显示
          - INSTANCE_NAME=Part-DB
    
          # 允许用户通过提供URL下载附件到服务器
          # 这可能是一个潜在的安全问题,因为用户可以检索服务器(通过互联网)访问的任何文件
          - ALLOW_ATTACHMENT_DOWNLOADS=0
          # 当用户未定义自己的头像时,使用Gravatar作为用户头像
          - USE_GRAVATAR=0
    
          # 如果你想在主页上显示给定的文本,则覆盖该值
          # 当此为空时,config/banner 的内容.md被用作横幅
          #- BANNER=这是一个带有换行符的测试横幅<br>
    
      database:
        container_name: partdb_database
        image: mysql:8.0
        restart: unless-stopped
        command: --default-authentication-plugin=mysql_native_password --log-bin-trust-function-creators=1
        environment:
          # 修改密码
          MYSQL_ROOT_PASSWORD: SECRET_ROOT_PASSWORD
          MYSQL_DATABASE: partdb
          MYSQL_USER: partdb
          MYSQL_PASSWORD: SECRET_USER_PASSWORD
        # 如果您需要从 Docker 容器外部访问 MySQL 数据库(例如用于调试),请取消以下行的注释,通常情况下应保持禁用状态。
        #ports:
        #  - '4306:3306'
        volumes:
          - ./mysql:/var/lib/mysql
    
    
    
  • 针对自身需求,修改上述文件。

    version: '3.3'
    services:
      partdb:
        container_name: partdb
        # 默认情况下,Part-DB将在端口 8080 下运行,您可以在这里更改它
        ports:
          - '8080:80'
        volumes:
          # 默认情况下
          - ./uploads:/var/www/html/uploads
          - ./public_media:/var/www/html/public/media
          - ./db:/var/www/html/var/db
        restart: unless-stopped
        image: jbtronics/part-db1:latest
        depends_on:
          - database
        environment:
          # 将 SECRET_USER_PASSWORD 替换为下面的 MYSQL_PASSWORD 值
          - DATABASE_URL=mysql://partdb:MySQLPasswordXXX@database:3306/partdb
          # 在 docker 中,日志将被重定向到stderr
          - APP_ENV=docker
    
          # 您可以使用环境变量配置零件数据
          # 下面您可以找到预定义的最基本的环境变量
          # 但是,您可以在此处添加任何其他所需的环境配
          # 有关所有可用选项,请参阅.env文件或https://docs.Part-DB.de/configuration.html
    
          # 服务器范围内默认使用的语言(en、de、ru等)
          - DEFAULT_LANG=zh
          # 服务器范围使用的默认时区(例如 中国标准时间CST )
          - DEFAULT_TIMEZONE=Asia/Shanghai
          # 数据库中使用的货币(在没有设置货币时假定)。这是以后无法更改的,所以请务必将其设置为您所在国家使用的货币
          - BASE_CURRENCY=CNY
          # 此安装的名称。这将在浏览器和网站的标题中显示
          - INSTANCE_NAME=Part-DB
    
          # 允许用户通过提供URL下载附件到服务器
          # 这可能是一个潜在的安全问题,因为用户可以检索服务器(通过互联网)访问的任何文件
          - ALLOW_ATTACHMENT_DOWNLOADS=0
          # 当用户未定义自己的头像时,使用Gravatar作为用户头像
          - USE_GRAVATAR=0
    
          # 如果你想在主页上显示给定的文本,则覆盖该值
          # 当此为空时,config/banner 的内容.md被用作横幅
          #- BANNER=这是一个带有换行符的测试横幅<br>
    
      database:
        container_name: partdb_database
        image: mysql:8.0
        restart: unless-stopped
        command: --default-authentication-plugin=mysql_native_password --log-bin-trust-function-creators=1
        environment:
          # 修改密码
          MYSQL_ROOT_PASSWORD: 123456789
          MYSQL_DATABASE: partdb
          MYSQL_USER: partdb
          MYSQL_PASSWORD: MySQLPasswordXXX
        # 如果您需要从 Docker 容器外部访问 MySQL 数据库(例如用于调试),请取消以下行的注释,通常情况下应保持禁用状态。
        #ports:
        #  - '4306:3306'
        volumes:
          - ./mysql:/var/lib/mysql
    
    
    
    • 默认使用的语言修改成中文

      DEFAULT_LANG=zh
      
    • 服务器范围使用的默认时区(例如 中国标准时间CST )

      DEFAULT_TIMEZONE=Asia/Shanghai
      
    • 设定为人民币

      BASE_CURRENCY=CNY
      
    • 官方要求的三处修改数据库路径、root用户密码、数据库。取值(仅供参考演示,切勿带入实际生成环境中)

       DATABASE_URL=mysql://partdb:MySQLPasswordXXX@database:3306/partdb
       MYSQL_ROOT_PASSWORD: 123456789
       MYSQL_PASSWORD: MySQLPasswordXXX
      
  • 修改并准备号配置文件后,运行拉取配置

    # 在文件夹内,运行
    docker-compose up -d
    # 使用 创建初始数据库(该命令运行完后,不要急着关闭,要管理员账号和密码打印出来)
    docker exec --user=www-data partdb php bin/console doctrine:migrations:migrate
    
    

    在这里插入图片描述

新版更新

如果有新的版本,可以按照下述流程,更新 Part-DB,您可以通过拉取最新镜像并重启容器来更新 Part-DB。然后,您必须再次运行数据库迁移。

docker-compose pull
docker-compose up -d
docker exec --user=www-data partdb php bin/console doctrine:migrations:migrate

其它问题

  1. 在docker拉取镜像或资源时,报artdb Error Get "https://registry-1.docker.io/v2/"错误。这种情况,就是现有加速源可能拉取不到,或者速度慢,在上网多搜索几个加速源配置就好了。
  2. Part-DB的界面,匿名者(没登录的用户)是可以默认有大部分权限的,要是不想让匿名者进入Part-DB物料界面查看物料信息,请及时关闭。

相关文章:

  • 探索浮点数在内存中的存储(附带快速计算补码转十进制)
  • 网易云音乐分布式KV存储实践与演进
  • 博客系统完整开发流程
  • 观成科技:海莲花“PerfSpyRAT”木马加密通信分析
  • RK3399 Android10双WiFi功能实现
  • ubuntu+aarch64+dbeaver安装【亲测,避坑】
  • low rank decomposition如何用于矩阵的分解
  • Jenkins protoc: command not found
  • Redis面试题----Redis 的持久化机制是什么?各自的优缺点?
  • 计算机毕业设计SpringBoot+Vue.js中小型医院网站(源码+文档+PPT+讲解)
  • Go语言中的信号量:原理与实践指南
  • 岳阳市美术馆预约平台(小程序论文源码调试讲解)
  • opencv边缘检测
  • 利用机器学习实现实时交易欺诈检测
  • 学习Java数据类型:全面解析与实践指南
  • 【HarmonyOS Next】鸿蒙应用公钥和证书MD5指纹的获取
  • 客户端进程突然结束,服务端read是什么行为?
  • 计算机三级网络技术备考
  • Android 字体大小自动处理 AppCompactTextView 和 自定义 TextView
  • 密码学基础
  • 中国新闻发言人论坛在京举行,郭嘉昆:让中国声音抢占第一落点
  • 浙江演艺集团7部作品组团来沪,今夏开启首届上海演出季
  • 高途一季度净利润同比增长1108%: “与吴彦祖一起学英语”短时间内就实现了盈利
  • 新城悦服务:独董许新民辞任,新任独董与另两人组成调查委员会将调查与关联方资金往来
  • 全国省市县国土空间总体规划已基本批复完成,进入全面实施阶段
  • 微软宣布全球裁员约3%:涉及约6000人,侧重经理层