今天看到朋友圈和技术群里都在刷腾讯云双十一优惠活动,服务器一年 88 RMB,午休的时候就下单买了一台。服务器配置为 1 核 2G,操作系统为 CentOS,跑一些小站足够使用。说来惭愧,这是我的第一台(购买的)私人服务器,之前都在薅羊毛中度过(假的服务端)。

正好这几天想搭建个人相册,看到了 Zing Gallery 的 Demo 十分喜欢,既然有了服务器,那就撸起袖子干吧!

安装 Docker

首先要在云服务器上安装 Docker 环境。

安装并运行 Docker:

$ yum install docker-io –y
$ systemctl start docker

检查安装结果:

$ docker info

修改项目

先把 Zing Gallery Clone 到本地,按自己的需求修改配置并更换照片。根据其 README 可知:

  1. 将照片放入 resources/photos 文件夹
  2. 执行命令 npm i 安装依赖
  3. 执行命令 npm run start 启动相册
  4. 项目的配置文件为 config.js

项目容器化

因为要使用 Docker 部署,所以需要将项目容器化。

创建 dockerfile,配置如下:

# 基础镜像
FROM node:8.11.3

# 工作目录
WORKDIR /app
# 将文件拷贝至工作目录
COPY . /app
# 安装依赖
RUN npm i
# 暴露端口
EXPOSE 8080
# 运行项目
CMD ["node", "app.js"]

再创建一个 .dockerignore 文件用于忽略不必要的文件:

node_modules
npm-debug.log

创建镜像

在项目根目录下使用 docker build 创建镜像。假设给它起名为 hello-gallery

docker build -t hello-gallery .

build 成功后会在本地生成一个 hello-gallery:lastest 镜像。

上传镜像

我们已经在本地完成了镜像的创建,要怎么把它部署到服务器上呢?我们需要一个镜像仓库,把本地的镜像 push 上去,再在服务器上 pull 下来。这里我选择的是 七牛云镜像仓库

在 push 镜像前需要先登录镜像仓库:

docker login -u username -p password

然后使用 docker tag 修改镜像名称,名称需要包含对应镜像仓库的域名:

docker tag hello-gallery reg.qiniu.com/gallery/time:v1.0.0

改好名称后就可以执行 push 操作了:

docker push reg.qiniu.com/gallery/time:v1.0.0

push 成功后,我们就能在服务器上 pull:

docker pull reg.qiniu.com/gallery/time:v1.0.0

部署

我们已经在服务器上成功 pull 了镜像文件,现在让它跑起来!

docker run -p 8081:8080 reg.qiniu.com/gallery/time:v1.0.0

这里对外暴露了 8081 端口,使用 ip:8081 即可访问,👉戳这里这里


因为域名绑定的手机号已经更换了,暂时没有办法绑定域名,后面再做一下域名绑定与持续集成吧。

参考资料