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

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物料界面查看物料信息,请及时关闭。

http://www.kler.cn/a/562346.html

相关文章:

  • redis检测大key
  • 【够用就好006】-PC桌面管理ECS服务器的实操步骤
  • 【C++篇】树影摇曳,旋转无声:探寻AVL树的平衡之道
  • FastAPI高级特性(二):错误处理、中间件与应用生命周期
  • Redis-列表结构实操
  • Python 环境管理介绍
  • Kafka客户端连接服务端异常 Can‘t resolve address: VM-12-16-centos:9092
  • QSNCTF-WEB做题记录(2)
  • 【STL】4.<list>
  • 车载诊断架构 --- LIN节点路由转发注意事项
  • smolagents学习笔记系列(六)Secure code execution
  • 文件上传漏洞学习笔记
  • VUE 获取视频时长,无需修改数据库,前提当前查看视频可以得到时长
  • 第15章-超声波避障功能 HC-SR04超声波测距模块详解STM32超声波测距
  • Fisher信息矩阵(Fisher Information Matrix, FIM)与自然梯度下降:机器学习中的优化利器
  • KafkaTool
  • 使用 Redis 实现分布式锁
  • P8597 [蓝桥杯 2013 省 B] 翻硬币
  • TCP fast open
  • 存储产品和数据库产品之间有没有竞争关系