Sign inSign up

nn200433/siyuan

By nn200433

•Updated over 4 years ago

基于 b3log/siyuan ,可自定义 siyuan 账户的 uid 与 gid

Image
0

1.5K

nn200433/siyuan repository overview

⁠前言

群晖不知道为啥打开文件没有权限。所以,群晖不能用

该镜像基于官方镜像,只进行默认 siyuan 账户 uid 与 gid 的自定义

⁠环境变量

  • USER_UID:siyuan 用户的 uid
  • USER_GID:siyuan 用户的 gid
  • WORK_SPACE:工作空间(注意:内核参数不能在定义 --workspace!!!)
  • SIYUAN_OPTIONS:内核参数,如:--resident=true --accessAuthCode=123456

更多变量请在下方代码中查找

⁠编译配置

⁠Dockerfile

FROM alpine:3.15
MAINTAINER [email protected]

# 定义环境变量
ENV TZ=Asia/Shanghai
ENV LANG=zh_CN.UTF-8
ENV LC_ALL=zh_CN.UTF-8
ENV LANGUAGE=zh_CN.UTF-8
ENV WORK_SPACE=/home/siyuan

# 拷贝编译文件
COPY siyuan /opt/siyuan/
COPY entrypoint.sh /usr/bin
WORKDIR /opt/siyuan/

# 赋予脚本执行权限
RUN chmod 755 /usr/bin/entrypoint.sh

# 设置时区为上海
RUN sed -i "s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g" /etc/apk/repositories && \ 
	apk add -U --no-cache \
	ca-certificates \
	bash \
	curl \
	su-exec \
	tzdata && \
	cp /usr/share/zoneinfo/${TZ} /etc/localtime && \
	echo ${TZ} > /etc/timezone && \
	apk del tzdata

# 添加用户
RUN addgroup -S -g 1000 siyuan && \
	adduser -S -H -D -h /home/siyuan -s /bin/bash -u 1000 -G siyuan siyuan && \
	echo "siyuan:*" | chpasswd -e

EXPOSE 6806
ENTRYPOINT ["/usr/bin/entrypoint.sh"]

⁠entrypoint.sh

#!/bin/sh

echo "=================== 启动参数 ==================="
echo "USER_GID = ${USER_GID}"
echo "USER_UID = ${USER_UID}"
echo "SIYUAN_OPTIONS = ${SIYUAN_OPTIONS}"
echo "WORK_SPACE = ${WORK_SPACE}"
echo "==============================================="

if [ -z "${USER_GID}" ]; then
  USER_GID="`id -g siyuan`"
fi

if [ -z "${USER_UID}" ]; then
  USER_UID="`id -u siyuan`"
fi

# 更新用户GID?
if [ -n "${USER_GID}" ] && [ "${USER_GID}" != "`id -g siyuan`" ]; then
    echo "更新用户GID..."
    sed -i -e "s/^siyuan:\([^:]*\):[0-9]*/siyuan:\1:${USER_GID}/" /etc/group
    sed -i -e "s/^siyuan:\([^:]*\):\([0-9]*\):[0-9]*/siyuan:\1:\2:${USER_GID}/" /etc/passwd
fi

# 更新用户UID?
if [ -n "${USER_UID}" ] && [ "${USER_UID}" != "`id -u siyuan`" ]; then
    echo "更新用户UID..."
    sed -i -e "s/^siyuan:\([^:]*\):[0-9]*:\([0-9]*\)/siyuan:\1:${USER_UID}:\2/" /etc/passwd
fi

if [ -z "${WORK_SPACE}" ]; then
    exit 1
fi

# 创建工作空间
if [ ! -d "${WORK_SPACE}" ];then
    echo "生成工作空间目录 ${WORK_SPACE} ..."
    mkdir -p ${WORK_SPACE}
fi
chown -R siyuan:siyuan ${WORK_SPACE};

# 文件夹不存在则创建,不知道为啥,反正就得创建,不创建启动会报错
if [ ! -d "/home/siyuan" ];then
    # echo "生成 /home/siyuan 目录..."
    mkdir -p /home/siyuan
fi
chown -R siyuan:siyuan /home/siyuan

# 启动思源笔记内核
if [ -n "${SIYUAN_OPTIONS}" ]; then
    echo "即将启动带参数的笔记内核..."
    exec su-exec siyuan /opt/siyuan/kernel ${SIYUAN_OPTIONS} --workspace=${WORK_SPACE}
else
    echo "即将启动笔记内核..."
    exec su-exec siyuan /opt/siyuan/kernel --workspace=${WORK_SPACE}
fi

⁠启动示例

version: '3'
services:
  siyuan:
    privileged: true
    volumes:
      - /home/siyuan/notes:/nn200433/SiYuan
    environment: 
      - USER_UID=1003
      - USER_GID=1003
      - WORK_SPACE=/nn200433/SiYuan
      - SIYUAN_OPTIONS=--resident=true --accessAuthCode=123456
    network_mode: host
    restart: always
    container_name: siyuan
    image: nn200433/siyuan:1.8.4

Tag summary

Content type

Image

Digest

Size

47.5 MB

Last updated

over 4 years ago

docker pull nn200433/siyuan