为jekyll制作docker镜像

本文详细介绍使用Docker搭建Jekyll博客的过程,包括修改镜像入口文件、制作镜像、解决权限问题等关键步骤,避免了传统安装方式的版本冲突难题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明

jekyll运行依赖ruby,每次重装都会遇到版本问题,挺麻烦,干脆做成镜像

官方镜像存在的问题

docker上有jekyll的官方镜像,如果是直接运行,没什么问题。

如果你挂载volume就会有权限问题

jekyll 3.8.5 | Error:  Permission denied @ dir_s_mkdir - /srv/jekyll/_site

制作步骤

  • 步骤1:修改镜像入口文件entrypoint

从官方镜像jekyll中拿到入口文件,做一点修改

#!/bin/bash
[ "$DEBUG" = "true" ] && set -x
set -e

# --
: ${JEKYLL_UID:=$(id -u jekyll)}
: ${JEKYLL_GID:=$(id -g jekyll)}

# --
export JEKYLL_UID
export JEKYLL_GID

# --
# Users can customize our UID's to fit their own so that
#   we don't have to chown constantly.  Well it's not like
#   we do so much of it (anymore) it's slow, but we do
#   change permissions which can result in some bad
#   behavior on OS X.
# --
if [ "1" != "0" ] ; then     # 修改了此处,改目录权限
  usermod  -u $JEKYLL_UID jekyll
  groupmod -g $JEKYLL_GID jekyll
  chown_args=""

  [ "$FULL_CHOWN" ] && chown_args="-R"
  for d in "$JEKYLL_DATA_DIR" "$JEKYLL_VAR_DIR"; do
    chown $chown_args jekyll:jekyll "$d"
  done
fi

# --
exec "$@"
  • 步骤2:镜像制作脚本,dockerfile文件
FROM jekyll/builder:3.8

COPY --chown=jekyll:jekyll entrypoint  /usr/jekyll/bin/entrypoint

RUN gem install jekyll-admin  redcarpet
  • 步骤3:编译镜像

docker build . -t wyq/blog:0.1

  • 步骤4:启动脚本,docker-compose.yml文件
version: '2'
services:
  blog:
    image: wyq/blog:0.1
    volumes:
            - ./blog:/srv/jekyll
    ports:
      - "4000:4000"
    command: jekyll serve -P 4000 -H 0.0.0.0 -w
  • 步骤5:启动
docker-compose -f docker-compose.yml up

来源
http://www.yongqingking.top/docker/2019/04/08/docker-jekyll.html

此生必看的科学实验-水知道答案
《了凡四训》详解之改过之法
印光大师十念法(胡小林主讲第1集)
精神病为什么治不好
百病之源

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值