介绍

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. 记录--vue3优雅的使用element-plus的dialog

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 如何优雅的基于 element-plus,封装一个梦中情 dialog 优点 摆脱繁琐的 visible 的命名,以及反复的重复 dom. ...

  2. WinAppSDK / WinUI3 项目无法使用 SystemEvents 的问题

    SystemEvents 是一个开发 win32 窗口项目很常用的类,其中封装了一些常用的系统广播消息.在 WinUI3 项目中,SystemEvents 事件经常无法触发,简单排查了一下原因. Sy ...

  3. vscode插件设置——Golang开发环境配置

    适用读者: Go初学者, 到这里, 你应该是处于已经完成了 go 的安装之后, 准备写个 "Hello Gopher" 之前. 本篇力求给初学者-未来的Gopher 们 一个正确的 ...

  4. 二.安装ifconfig命令

    二.安装ifconfig命令 1.ifconfig命令是设置或显示网络接口的程序,可以显示出我们机器的网卡信息,可是有些时候最小化安装CentOS等Linux发行版的时候会默认不安装ifconfig等 ...

  5. jenkens2权威指南

    第1章 Jenkins简介 Jenkins 2是什么 JobConfigHistory:这个插件可以追溯XML配置的历史版本信息, 并且允许你查看每次变更的内容. JenkinsFile Jenkin ...

  6. Python---flask框架实现修改密码功能

    数据库部分: 1 #重置密码 2 def reset_pass(phone,password): 3 conn,cursor=get_conn() 4 sql="update userdat ...

  7. C++ 自动计时

    #include<iostream> #include<chrono> struct Timer { std::chrono::time_point<std::chron ...

  8. 1 CSS的引入方式

    1 CSS的引入方式 CSS样式有三种不同的使用方式,分别是行内样式,嵌入样式以及链接式.我们需要根据不同的场合不同的需求来使用不同的样式. 行内样式 行内样式,就是写在元素的style属性中的样式, ...

  9. 前端使用 Konva 实现可视化设计器(1)

    使用 konva 实现一个设计器交互,首先考虑实现设计器的画布. 一个基本的画布: [展示]网格.比例尺 [交互]拖拽.缩放 "拖拽"是无尽的,"缩放"是基于鼠 ...

  10. CentOS 9 安装 Nginx 模块 `subs_filter`

    sub_filter 和 subs_filter 区别 sub_filter( 0.7.24):替换响应体(Response Body)中的文本,只能设置一组替换. subs_filter:替换响应体 ...