前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Travis CI 构建 GitBook 实践

Travis CI 构建 GitBook 实践

作者头像
康怀帅
发布2018-02-28 15:47:22
1K0
发布2018-02-28 15:47:22
举报
文章被收录于专栏:康怀帅的专栏康怀帅的专栏

本文只提供思路,具体实现请查看本人博客的其他文章。务必对 Travis CI 基础知识 了解之后再阅读本文。

刚开始在 Travis CI 中从零开始搭建环境,全部执行时间为 三分半,将环境部署进 Docker, docker run XXX 之后直接开始生成,时间缩短为 一分半

准备 GitBook 项目文件

新建 .travis 文件夹

复制根目录 book.json 文件

编写 Dockerfile 文件

FROM node:9-alpine

ENV TZ=Asia/Shanghai

WORKDIR /srv/gitbook

COPY book.json book.json

COPY docker-entrypoint.sh /usr/local/bin/

RUN apk add --no-cache \
          tzdata \
      && npm install -g gitbook-cli \
      && gitbook install \
      && ln -s /usr/local/bin/docker-entrypoint.sh / \
      && rm -rf /root/.npm /tmp/*

EXPOSE 4000

VOLUME /srv/gitbook-src

WORKDIR /srv/gitbook-src

ENTRYPOINT ["docker-entrypoint.sh"]

CMD server

编写 docker-entrypoint.sh 文件

#!/bin/sh

START=`date "+%F %T"`

if [ $1 = "sh" ];then sh ; exit 0; fi

rm -rf node_modules _book

cp -a . ../gitbook

cd ../gitbook

main(){
  if [ "$1" = build ];then gitbook build; cp -a _book ../gitbook-src; echo $START; date "+%F %T"; exit 0; fi
  gitbook serve
  exit 0
}

main $1 $2 $3

编写 docker-compose.test.yml 文件

sut:
  build: .
  volumes:
    - ../:/srv/gitbook-src
command: build

该文件用于 Docker Cloud 在每次提交 PR 时测试。

加密 SSH 私钥

该文件一般为 id_rsa.enc

根目录文件

编写 .travis.yaml

language: bash
sudo: required
services:
- docker
before_install:
- openssl aes-256-cbc -K $encrypted_6cc8cff04075_key -iv $encrypted_6cc8cff04075_iv
  -in .travis/id_rsa.enc -out ~/.ssh/id_rsa -d
- chmod 600 ~/.ssh/id_rsa
- export TZ='Asia/Shanghai'
- date
- git config --global user.name "khs1994"
- git config --global user.email "khs1994@khs1994.com"
script:
- docker run -it --rm -v $PWD:/srv/gitbook-src yeasy/docker_practice build
after_success:
- sudo chmod -R 777 _book
- cd _book
- git init
- git remote add origin "$REPO"
- git add .
- COMMIT=`date "+%F %T"`
- git commit -m "Travis CI Site updated $COMMIT"
- git push -f origin master:"$DEPLOY_BRANCH"
env:
  global:
  - DEPLOY_BRANCH: pages
  - REPO: git@github.com:yeasy/docker_practice.git
addons:
  ssh_known_hosts:
  - github.com
branches:
  only:
  - master

编写 docker-compose.yml

version: "3"
services:

  server:
    # build: ./.travis
    image: username/project:latest
    ports:
      - 4000:4000
    volumes:
      - ./:/srv/gitbook-src
    command: server

  build:
    image: username/project:latest
    volumes:
      - ./:/srv/gitbook-src
    command: build

  development:
    build: ./.travis
    image: username/project:latest
    ports:
      - 4000:4000
    volumes:
      - ./:/srv/gitbook-src
    command: server
    # command: build

构键 Docker 镜像并推送

# 根目录执行
$ docker-compose build development

$ docker-compose push development

不在本地构建镜像也行,在 Docker Cloud 关联 GitHub 仓库构建也可以。

推送 GitBook 项目到 GitHub

示例

如果不清楚文件夹结构,可以参考:https://github.com/yeasy/docker_practice

相关链接

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-07-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备 GitBook 项目文件
  • 新建 .travis 文件夹
    • 复制根目录 book.json 文件
      • 编写 Dockerfile 文件
        • 编写 docker-entrypoint.sh 文件
          • 编写 docker-compose.test.yml 文件
            • 加密 SSH 私钥
            • 根目录文件
              • 编写 .travis.yaml
                • 编写 docker-compose.yml
                • 构键 Docker 镜像并推送
                • 推送 GitBook 项目到 GitHub
                • 示例
                • 相关链接
                相关产品与服务
                容器服务
                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档