本地构建、运行 kubernetes/website

背景

本文介绍如何在本地快速将 kubernetes/website 项目运行起来。

步骤
  1. 构建运行镜像
    项目里已经包含运行时镜像的 Dockerfile,我们只需执行 make docker-image
    $ make docker-image
    docker build . --tag kubernetes-hugo --build-arg HUGO_VERSION=0.49
    Sending build context to Docker daemon  4.096kB
    Step 1/7 : FROM alpine:latest
    latest: Pulling from library/alpine
    e7c96db7181b: Pull complete 
    Digest: sha256:769fddc7cc2f0a1c35abb2f91432e8beecf83916c421420e6a6da9f8975464b6
    Status: Downloaded newer image for alpine:latest
     ---> 055936d39205
    Step 2/7 : MAINTAINER Luc Perkins <lperkins@linuxfoundation.org>
     ---> Running in d59f0a65e898
    Removing intermediate container d59f0a65e898
     ---> 608b99c5d0f5
    Step 3/7 : RUN apk add --no-cache     curl     git     openssh-client     rsync     build-base     libc6-compat
     ---> Running in 9bfe037b7da5
    fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz
    fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz
    (1/37) Installing binutils (2.31.1-r2)
    (2/37) Installing libmagic (5.36-r0)
    (3/37) Installing file (5.36-r0)
    (4/37) Installing gmp (6.1.2-r1)
    (5/37) Installing isl (0.18-r0)
    (6/37) Installing libgomp (8.3.0-r0)
    (7/37) Installing libatomic (8.3.0-r0)
    (8/37) Installing libgcc (8.3.0-r0)
    (9/37) Installing mpfr3 (3.1.5-r1)
    (10/37) Installing mpc1 (1.0.3-r1)
    (11/37) Installing libstdc++ (8.3.0-r0)
    (12/37) Installing gcc (8.3.0-r0)
    (13/37) Installing musl-dev (1.1.20-r4)
    (14/37) Installing libc-dev (0.7.1-r0)
    (15/37) Installing g++ (8.3.0-r0)
    (16/37) Installing make (4.2.1-r2)
    (17/37) Installing fortify-headers (1.0-r0)
    (18/37) Installing build-base (0.5-r1)
    (19/37) Installing ca-certificates (20190108-r0)
    (20/37) Installing nghttp2-libs (1.35.1-r0)
    (21/37) Installing libssh2 (1.8.2-r0)
    (22/37) Installing libcurl (7.64.0-r2)
    (23/37) Installing curl (7.64.0-r2)
    (24/37) Installing expat (2.2.6-r0)
    (25/37) Installing pcre2 (10.32-r1)
    (26/37) Installing git (2.20.1-r0)
    (27/37) Installing libc6-compat (1.1.20-r4)
    (28/37) Installing openssh-keygen (7.9_p1-r5)
    (29/37) Installing ncurses-terminfo-base (6.1_p20190105-r0)
    (30/37) Installing ncurses-terminfo (6.1_p20190105-r0)
    (31/37) Installing ncurses-libs (6.1_p20190105-r0)
    (32/37) Installing libedit (20181209.3.1-r0)
    (33/37) Installing openssh-client (7.9_p1-r5)
    (34/37) Installing libattr (2.4.47-r7)
    (35/37) Installing libacl (2.2.52-r5)
    (36/37) Installing popt (1.16-r7)
    (37/37) Installing rsync (3.1.3-r1)
    Executing busybox-1.29.3-r10.trigger
    Executing ca-certificates-20190108-r0.trigger
    OK: 190 MiB in 51 packages
    Removing intermediate container 9bfe037b7da5
     ---> 097747e17d3b
    Step 4/7 : ARG HUGO_VERSION
     ---> Running in 52f40c4a1888
    Removing intermediate container 52f40c4a1888
     ---> b280f2ae0beb
    Step 5/7 : RUN mkdir -p /usr/local/src &&     cd /usr/local/src &&     curl -L https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_linux-64bit.tar.gz | tar -xz &&     mv hugo /usr/local/bin/hugo &&     addgroup -Sg 1000 hugo &&     adduser -Sg hugo -u 1000 -h /src hugo
     ---> Running in c108bc617b96
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100   618    0   618    0     0    637      0 --:--:-- --:--:-- --:--:--   636
    100 7471k  100 7471k    0     0  26967      0  0:04:43  0:04:43 --:--:-- 35297
    Removing intermediate container c108bc617b96
     ---> 362d41624cce
    Step 6/7 : WORKDIR /src
     ---> Running in ccd6267d276e
    Removing intermediate container ccd6267d276e
     ---> 2a23462cc638
    Step 7/7 : EXPOSE 1313
     ---> Running in 1335c41f8096
    Removing intermediate container 1335c41f8096
     ---> e7b443574e01
    Successfully built e7b443574e01
    
    该命令会创建包含 Hugo 及运行 Website 所需的依赖环境的 Docker 镜像
  2. 运行 website
    基于上述运行时镜像,我们只需执行 make docker-serve 即可运行起 website
    $ make docker-serve
    docker run --rm --interactive --tty --volume /home/work/src/k8s.io/website:/src -p 1313:1313 kubernetes-hugo hugo server --watch --bind 0.0.0.0
    
                       |  EN  | ZH  | KO   
    +------------------+------+-----+-----+
      Pages            | 1687 | 235 |  44  
      Paginator pages  |  251 |   4 |   0  
      Non-page files   |  507 | 367 | 299  
      Static files     |  815 | 815 | 815  
      Processed images |    0 |   0 |   0  
      Aliases          |    3 |   2 |   1  
      Sitemaps         |    2 |   1 |   1  
      Cleaned          |    0 |   0 |   0  
    
    Total in 12684 ms
    Watching for changes in /src/{content,data,i18n,layouts,static}
    Watching for config changes in /src/config.toml
    Serving pages from memory
    Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
    Web Server is available at http://localhost:1313/ (bind address 0.0.0.0)
    Press Ctrl+C to stop
    
    浏览器访问:http://127.0.0.1:1313
    在这里插入图片描述参考链接:https://github.com/kubernetes/website/blob/master/README.md
错误记录
  1. 运行 make docker-serve 出错,可能是因为需要梯子,代码会访问 api.twitter.com

    docker run --rm --interactive --tty --volume /home/work/src/k8s.io/website:/src -p 1313:1313 kubernetes-hugo hugo server --watch --bind 0.0.0.0
    Building sites … ERROR 2019/06/13 07:41:11 Failed to get JSON resource https://api.twitter.com/1/statuses/oembed.json?id=992409364467200000&dnt=false: Get https://api.twitter.com/1/statuses/oembed.json?id=992409364467200000&dnt=false: dial tcp 31.13.64.49:443: connect: connection refused
    ERROR 2019/06/13 07:41:11 Failed to get JSON resource https://api.twitter.com/1/statuses/oembed.json?id=1044345018490662912&dnt=false: Get https://api.twitter.com/1/statuses/oembed.json?id=1044345018490662912&dnt=false: dial tcp 31.13.64.49:443: connect: connection refused
    Total in 16700 ms
    Error: Error building site: logged 2 error(s)
    Makefile:48: recipe for target 'docker-serve' failed
    make: *** [docker-serve] Error 255
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值