Docker方式部署V2Board

V2Board是个很优秀的系统。

按照官方的文档,部署V2Board需要用到aapanel。但官方其实一直有开发Docker版,只不过一直没有相关部署文档罢了。

最近,宝塔的骚操作,让人越来越没有安全感,于是,本篇就简单介绍一下用Docker方式部署V2Board的方法。

 

一、前期准备

1、安装Docker

curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker

 

2、安装Docker Compose

apt-get install docker-compose -y
curl -L "https://github.com/docker/compose/releases/download/1.25.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

 

你也可以为Docker Compose创建一个快捷键,创建好以后,就可以直接用dc命令替代docker compose了。

chmod a+x /usr/local/bin/docker-compose
rm -rf `which dc`
ln -s /usr/local/bin/docker-compose /usr/bin/dc

 

二、安装V2B

1、拉取

git clone https://github.com/v2board/v2board-docker.git
mv v2board-docker v2b

 

配置稳定版

cd v2b/
git submodule update --init
echo '  branch = master' >> .gitmodules
git submodule update --remote

 

配置开发版

cd v2b/
git submodule update --init
echo '  branch = dev' >> .gitmodules
git submodule update --remote

 

2、修改 docker-compose.yaml

若数据库不在本地

version: '3'
services:
  www:
    image: tokumeikoi/lcrp
    volumes:
      - './www:/www'
      - './wwwlogs:/wwwlogs'
      - './caddy.conf:/run/caddy/caddy.conf'
      - './supervisord.conf:/run/supervisor/supervisord.conf'
      - './crontabs.conf:/etc/crontabs/root'
      - './.caddy:/root/.caddy'
    ports:
      - '80:80'
      - '443:443'
    restart: always

 

若数据库在本地

version: '3'
services:
  www:
    image: tokumeikoi/lcrp
    volumes:
      - './www:/www'
      - './wwwlogs:/wwwlogs'
      - './caddy.conf:/run/caddy/caddy.conf'
      - './supervisord.conf:/run/supervisor/supervisord.conf'
      - './crontabs.conf:/etc/crontabs/root'
      - './.caddy:/root/.caddy'
    ports:
      - '80:80'
      - '443:443'
    restart: always
+    links:
+      - mysql
  mysql:
    image: mysql:5.7.29
    volumes:
      - './mysql:/var/lib/mysql'
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 请修改密码
      MYSQL_DATABASE: v2b

 

3、修改caddy.conf

http://你的域名 {
   root /www/public
   fastcgi / /tmp/php-cgi.sock php
    rewrite {
        to {path} {path}/ /index.php?{query}
    }
}

https://你的域名 {
    tls 你的CF邮箱
    root /www/public
    log /wwwlogs/caddy.log
    fastcgi / /tmp/php-cgi.sock php
    rewrite {
        to {path} {path}/ /index.php?{query}
    }
}

 

如果你需要用反代的方式处理订阅链接,那么反代的网址也要填进去。

 

4、安装

先启动Docker

dc up -d

 

进入容器

dc exec www bash

 

配置环境及安装

wget https://getcomposer.org/download/1.9.0/composer.phar
php composer.phar global require hirak/prestissimo
php -d memory_limit=-1 composer.phar install
php artisan v2board:install

 

如果数据库在本地,则配置如下

__     ______  ____                      _
\ \   / /___ \| __ )  ___   __ _ _ __ __| |
 \ \ / /  __) |  _ \ / _ \ / _` | '__/ _` |
  \ V /  / __/| |_) | (_) | (_| | | | (_| |
   \_/  |_____|____/ \___/ \__,_|_|  \__,_|
 请输入数据库地址(默认:localhost) [localhost]:
 > mysql
 请输入数据库名:
 > v2board
 请输入数据库用户名:
 > root
 请输入数据库密码:
 > v2boardisbest
正在导入数据库请稍等...
数据库导入完成
 请输入管理员邮箱?:
 > [email protected]
 请输入管理员密码?:
 > 12345678
一切就绪
访问 http(s)://你的站点/admin 进入管理面板

 

如果数据库在远程,则填写远程地址。建议远程数据库设置防火墙。

 

5、 启动horizon

dc exec www bash

 

php artisan horizon &

 

6、升级

dc exec www bash

 

sh update.sh

 

php artisan horizon &

 

三、其他

1、清除高磁盘占用的日志文件

当V2Board运行一段时间,会发现磁盘可用率变低了。大概率是因为laravel的日志文件造成的。

处理方法如下

进入Docker

dc exec www bash

进入日志文件夹

cd storage/logs

删除久远的日志即可。

 

打完收工!

 

 

阅读剩余
THE END