蓝眼云盘-构建docker镜像及部署

ragnar 1年前 ⋅ 303 阅读

0 关于蓝眼云盘

蓝眼云盘就是一个私人网盘的项目,实现了云盘(如:百度云盘 ,微云 )的核心功能:文件夹管理,文件管理,上传文件,下载文件,文件分享等。

项目前后端分离开发,后端使用golang开发,前端使用vue套件开发。

蓝眼云盘-作者-项目介绍: https://blog.eyeblue.cn/home/article/8953d493-f80a-4be0-bde2-50d3c5747430

蓝眼系列:https://github.com/eyebluecn

1 下载安装包 & 解压缩 & 运行

  • github下载
    https://github.com/eyebluecn/tank/releases

  • 官网下载
    https://tank-doc.eyeblue.cn/en/basic/download.html

linux上解压缩

tar -zxvf tank-4.0.2.linux-amd64.tar.gz

运行
解压缩后,进入tank-4.0.2目录,输入./tank就可以运行了。

2 构建docker镜像

其实作者是把他构建好的项目镜像上传到docker公仓的,之前可以直接把docker镜像摘取下来直接用,但现在(2024/2/2)拉取不下来。

sudo docker pull eyeblue/tank
[sudo] password for rollo:
Using default tag: latest
Error response from daemon: manifest for eyeblue/tank:latest not found: manifest unknown: manifest unknown

那我的方案是从官网上下载作者编译好的安装包去做docker镜像。当然自己把源码拉下来自己编译也不错,如果你熟悉VUE和golang的话。

创建Dockerfile文件
把文件放到解压后的tank-4.0.2目录下。

# 使用 golang 1.18
FROM golang:1.18

# 工作目录
WORKDIR /data

# 复制当前目录下的所有内容到/date目录
COPY . /data

# go的代理
ENV GOPROXY=https://goproxy.cn

# 设置时区
ENV TZ=Asia/Shanghai
RUN apt-get install -y tzdata

# 使用 6010 端口
EXPOSE 6010

# 这里的 tank 是执行文件,容器运行就会执行这个文件
ENTRYPOINT ["/data/tank"]

构建docker镜像

docker build -t tank:4.0.2 .

3 部署

docker部署mysql

docker run -d --restart=always -p 13306:3306 -v ~/data/eyeblue/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=tank -e TZ=Asia/Shanghai --name tank_mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-time_zone=+8:00

docker部署tank

docker run -d --restart=always -p 6010:6010 -v ~/data/eyeblue/tank/log:/data/log -v ~/data/eyeblue/tank/matter:/data/matter --name=tank tank:4.0.2

tank怎么访问到tank_mysql?

因为没把mysql跟tank放一个容器时,这其实网络上是隔离的。当然docker-compose也是个不错的方案,作者也推荐(见蓝眼云盘-作者-项目介绍)。但我就是不想放一块,那怎么办呢?为了让tank能访问到mysql,我们需要给它们创建个网络:

# 创建tank-work网络
docker network create tank-work
# 连接tank_mysql容器
docker network connect tank-work tank_mysql
# 连接tank容器
docker network connect tank-work tank

tank访问tank_mysql时,就直接把tank_mysql当域名一样去请求就可以了。

参考

GitBoot:《Docker-从入门到实践》 https://yeasy.gitbook.io/docker_practice/

我开源了一个私人云盘——蓝眼云盘 https://blog.eyeblue.cn/home/article/8953d493-f80a-4be0-bde2-50d3c5747430


全部评论: 0

    我有话说:

    目录