介绍

Part-DB是一个开源的器件管理工具,博主用于管理个人的电子器材,最近捣鼓了一下这个工具,由于手头还有一块闲置的赛昉·星光2的开发板,所以我打算一起拿来捣鼓一下,如果不成功,就用树莓派(生气)

1.安装

大家可以直接按照 官方安装指导 来安装即可,我也是参考官方的。

(1)安装docker和 docker-compose

这一步根据网上安装就好啦,我就不赘述啦0_0

(2)在ubunut创建所需要的目录文件文件

# 创建所需要的目录
mkdir Part-DB
cd Part-DB
mkdir db public_media uploads
touch docker-compose.yaml # 这是配置文件

(3)编辑 docker-compose.yaml

内容如下,根据官网的示例进行修改:

version: '3.3'
services:
partdb:
container_name: partdb
# By default Part-DB will be running under Port 8080, you can change it here
ports:
- '8080:80'
volumes:
# 这里就是关于docker挂载的文件了
- ./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:1.11 # <-----就是这个位置
environment:
# Put SQLite database in our mapped folder. You can configure some other kind of database here too.
- DATABASE_URL=sqlite:///%kernel.project_dir%/var/db/app.db
# In docker env logs will be redirected to stderr
- APP_ENV=docker # You can configure Part-DB using environment variables
# Below you can find the most essential ones predefined
# However you can add any other environment configuration you want here
# See .env file for all available options or https://docs.part-db.de/configuration.html
# !!! Do not use quotes around the values, as they will be interpreted as part of the value and this will lead to errors !!! # The language to use serverwide as default (en, de, ru, etc.)
- DEFAULT_LANG=zh
# The default timezone to use serverwide (e.g. Europe/Berlin)
- DEFAULT_TIMEZONE=Asia/Shanghai
# The currency that is used inside the DB (and is assumed when no currency is set). This can not be changed later, so be sure to set it the currency used in your country
- BASE_CURRENCY=EUR
# The name of this installation. This will be shown as title in the browser and in the header of the website
- INSTANCE_NAME=Part-DB # Allow users to download attachments to the server by providing an URL
# This could be a potential security issue, as the user can retrieve any file the server has access to (via internet)
- ALLOW_ATTACHMENT_DOWNLOADS=1
# Use gravatars for user avatars, when user has no own avatar defined
- USE_GRAVATAR=0 # Override value if you want to show a given text on homepage.
# When this is empty the content of config/banner.md is used as banner
#- BANNER=This is a test banner<br>with a line break # If you use a reverse proxy in front of Part-DB, you must configure the trusted proxies IP addresses here (see reverse proxy documentation for more information):
# - TRUSTED_PROXIES=127.0.0.0/8,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16

注意:"image: jbtronics/part-db1:1.11 "这个参数是比较重要的,他会在本地看看是否存在了镜像!!!

(4)实用 docker 命令进行构建

docker-compose up -d

(5)初始化数据库

# 进入容器
docker exec -it --user=www-data partdb /bin/bash
# 在容器内执行
php bin/console doctrine:migrations:migrate # 这个你可以多次执行,反正初始化之后就会弹出你已经初始化完成了

(6)输出结果

等待输出密码后退出容器,控制台会输出一个高亮的代码,也就是待会登录的用户名和密码,之后实用浏览器访问 http://localhost:8080 即可:

[warning] The initial password for the "admin" user is: xxxxxxxxxx # xxxxxxxxxx 这个就是密码了

(7) 网页结果

这里我创建了两个类别,方便待会移植到另一个虚拟机的时候做对比

2. docker数据迁移

(1)docker容器导出

将容器导出之前,要先commit一下,先commit成一个新的镜像,保存之前做的修改,不然数据没法一起导出,然后save一下就好了,具体操作如下

sudo docker commit -p -a "qm1412" -m "my first" ae8051601c61  mypartdb:v1

参数说明

  • -a : 提交镜像作者的名字
  • -m :提交的时候的文字说明
  • -p : 提交时暂停运行状态
  • ae8051601c61: 打包的容器ID,可用docker ps -a 查看
  • mypartdb:v1 : 新的镜像的名字,后续导入之后也是这个名字

sudo docker save mypartdb:v1 > myimage.tar    // 直接打包成镜像(全部数据)

参数说明

mypartdb:v1 : 要打包的镜像名字

myimage.tar : 压缩之后的名字

注意:要把这个这个工作文件一起导出,也就是整个part-db文件一起打包出去,因为里面db这个文件夹存放的就是数据库文件,所以一起打包就好了。

(2)docker容器导入

打开新的电脑,然后将刚才的东西导入进去,结果如下,我这新的电脑(虚拟机)没有任何镜像和容器:

将压缩包打包到新的环境中,执行之后用 docker images 查看一下就会出现一个mypartdb:v1 镜像名字,这样就导入成功了

sudo docker load < myimage.tar  # 导入镜像
sudo docker images # 查看镜像

(3)part-db运行

在新的环境中运行之前保存的part-db,具体操作如下:

  • 编辑 docker-compose.yaml

这里有个关键的就是docker有个启动顺序而言,也就是说要用yaml配置文件启动不同的服务,那么要修改的就一点image 这个参数要修改成新导入的镜像,否则又是新拉取的数据

touch docker-compose.yaml     # 这是配置文件
# image: mypartdb:v1 # 这个一定要修改,不然不会执行成功的

  • 启动容器

现在有了配置文件,那么就通过docker-compose来启动容器

sudo docker-compose up -d

然后控制台就会出现一个part-db的容器创建成功,然后用docker ps查看一下就好了

# 进入容器
docker exec -it --user=www-data partdb /bin/bash
# 在容器内执行
php bin/console doctrine:migrations:migrate # 这个你可以多次执行,反正初始化之后就会弹出你已经初始化完成了

  • 出现以上结果说明已经存在数据库了,最后查看结果,在浏览器访问 http://localhost:8080

最后成功将容器进行转移,这样就不怕数据丢失了。

3. 一些bug

  • 如果碰到docker启动了,然后docker ps 也有进程,但是访问不到网页,所以可以选择重启一下docker 服务
 systemctl restart docker
  • ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

出现这个问题,可以在命令前面加一个sudo,就是权限不够导致的,大部分都是这个权限问题

Part-DB 配置流程的更多相关文章

  1. 转载-Linux下svn搭建配置流程

    Linux下svn搭建配置流程     一.    源文件编译安装.源文件共两个,为: 1.   下载subversion源文件 subversion-1.6.1.tar.gz http://d136 ...

  2. win10下vagrant+centos7 rails虚拟开发机配置流程

    此文写于2017.8.21 在写本文前,笔者已经尝试了多种其他的替代方法,例如wmware虚拟机安装kylin.然而发现总是还有各种问题.经大佬指点安装了virtualbox + vagrant.于是 ...

  3. QT特供 CGAL配置流程(基于QT5+VS2015)

    最近做的QT项目涉及计算几何库,需要用到CGAL,其配置着实麻烦,而且相互关联的软件也存在版本兼容一类的问题,在这里就对其配置流程做一些整理说明,以便后来者能够少些烦恼.(注:以下使用Win10作说明 ...

  4. HI3531的DDR3配置流程

    DDR3 初始化配置流程 系统上电之后,必须先完成DDR3 SDRAM 的初始化操作,系统才能访问DDR3 SDRAM.在进行初始化之前需要注意以下几点: 对DDR3 SDRAM 进行上电操作时,需要 ...

  5. Linux下双网卡Firewalld的配置流程

    实验室拟态存储的项目需要通过LVS-NAT模式通过LVS服务器来区隔内外网的服务,所以安全防护的重心则落在了LVS服务器之上.笔者最终选择通过firewalld放行端口的方式来实现需求,由于firew ...

  6. Java采用RSA加密及解密技术的有关Maven项目的配置流程:

    第一步: 获得RSA公钥私钥(秘钥格式:PKCS#8 ,测试使用的是无私钥密码的) 公钥: -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4G ...

  7. Linux平台 Oracle 18c RAC安装Part3:DB配置

    四.DB(Database)配置 4.1 解压DB的安装包 4.2 DB软件配置 4.3 ASMCA创建磁盘组 4.4 DBCA建库 4.5 验证crsctl的状态 Linux平台 Oracle 18 ...

  8. OCM_第十八天课程:Section8 —》RAC 数据库 _ RAC DB 搭建/RAC DB 配置使用

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  9. xampp+vscode开发php的配置流程

    一.所需文件 1.xampp集成服务器(个人使用7.1.7)https://www.apachefriends.org/download.html 2.vscode https://code.visu ...

  10. GPON介绍及华为OLT网关注册配置流程(转)

    原文地址:https://blog.csdn.net/zhouzxi/article/details/79244862 一.GPON介绍 1.GPON简介 随着技术的发展,光纤变得“便宜又好用”,因此 ...

随机推荐

  1. 记录--工程化第一步这个package.json要真的搞明白才行

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 工程化最开始就是package.json开始的,很多人学了很多年也没搞清楚这个为什么这么神奇,其实有些字段是在特定场景才有效的,那每个属性 ...

  2. OpenCvSharp+Yolov5Net+Onnx 完整Demo

    效果 工程 代码 using Microsoft.ML.OnnxRuntime; using OpenCvSharp; using System; using System.Collections.G ...

  3. CDN 引入 axios 和 qs 及其使用方法

    一些小项目,没必要搭建脚手架,直接以CDN的方式引入 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&quo ...

  4. C# 证件照替换底色、设置背景图

    软件说明 基于以下开源项目,做了再次封装 PaddleSegSharp: 本项目是一个基于百度飞桨PaddleSeg项目的人像分割模块而开发的.NET的工具类库.PaddleSeg是基于飞桨Paddl ...

  5. 给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。

    private static void stringSubLen(String msg) { int max = 0; int left = 0; Map<Character,Integer&g ...

  6. KingbaseES V8R6集群运维案例之---securecmd连接需要密码问题

    KingbaseES V8R6集群运维案例之---securecmd连接需要密码问题 案例说明: 在KingbaseES V8R6集群可以使用securecmdd代替sshd实现集群主机节点间的通讯, ...

  7. 如何保证MySQL和Redis数据一致性?

    背景 在高并发的业务场景中,因为MySQL数据库是操作磁盘效率比较低,因此大多数情况下数据库都是高并发系统的瓶颈.因为Redis操作数据是在内存中进行,所以就需要使用Redis做一个缓存.让请求先访问 ...

  8. #二分图,并查集#洛谷 6185 [NOI Online #1 提高组] 序列

    题目 分析 考虑2操作可以在保证总和不变的情况下任意修改, 如果将2操作所在的连通块用并查集缩点,那么再考虑1操作, 按照1操作建边,如果存在奇环,那么只要这个环的点权和为偶数一定能使 \(a,b\) ...

  9. #圆方树,树链剖分#P4334 [COI2007] Policija

    题目 分析 先建一棵圆方树,必经点\(z\)就是满足\(z\)在\(x\)和\(y\)之间的路径上, 这个直接用树链剖分做,必经边必须要满足不在环上, 那么这个必经边就可以找到一个方点,就可以转换成必 ...

  10. 开发指导—利用CSS动画实现HarmonyOS动效(二)

      注:本文内容分享转载自HarmonyOS Developer官网文档 点击查看<开发指导-利用CSS动画实现HarmonyOS动效(一)> 3. background-position ...