使用docker部署hexo博客

hexo博客

在文章 用Hexo搭建个人博客(https://blog.xiayyu.me/2017/06/15/hexo-blog/) 中有关于hexo的详细介绍.本文主要介绍如何利用docker方便快捷的搭建静态网页服务器,用来部署我的hexo博客.

hexo服务器

直接上docker-compose.yml

version: '3'
services:
  # 静态网页服务器容器
  blog:
    container_name: blog
    image: nginx:stable-alpine
    restart: unless-stopped
    volumes:
      - blog-sftp:/usr/share/nginx/html:ro
    environment:
      # 以下三个环境变量为jrcs/letsencrypt-nginx-proxy-companion所需
      VIRTUAL_HOST: ${WEB_DOMAIN_NAME}, www.${WEB_DOMAIN_NAME}, blog.${WEB_DOMAIN_NAME}
      LETSENCRYPT_HOST: ${WEB_DOMAIN_NAME}, www.${WEB_DOMAIN_NAME}, blog.${WEB_DOMAIN_NAME}
      LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL}
  # sftp服务器容器用来上传静态网页内容
  sftp:
    container_name: blog-sftp
    image: atmoz/sftp:alpine
    restart: unless-stopped
    volumes:
      - blog-sftp:/home/blog/upload
    ports:
      - "2222:22"
    # cmd: 用户:密码:uid:gid:目录,必须写到目录,否则出现文件权限问题.
    command: blog:${SFTP_PW}:1001:100:upload
# 将网页服务器添加到同一docker网络中
networks:
  default:
    external:
      name: nginx-proxy
# 设置sftp容器和blog容器的共享volume
volumes:
  blog-sftp:

hexo默认支持的部署方式中sftp实现起来方便,特别是对于windows友好.为安全起见我没有直接使用vps的sftp服务,而是通过docker添加了一个sftp服务,并且通过docker volume实现容器间的文件共享.启动上述docker容器之后,只需要在hexo的配置文件_config.yml中填好相应的部署信息就ok了

deploy:
  type: sftp
  host: [hostname]
  user: blog
  pass: [passwd]
  port: 2222
  remotePath: /upload
标签:部署Docker 发布于:2019-11-12 00:50:13