基于 b3log/siyuan ,可自定义 siyuan 账户的 uid 与 gid
1.5K
群晖不知道为啥打开文件没有权限。所以,群晖不能用
该镜像基于官方镜像,只进行默认 siyuan 账户 uid 与 gid 的自定义
--workspace!!!)--resident=true --accessAuthCode=123456更多变量请在下方代码中查找
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"]
#!/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
Content type
Image
Digest
Size
47.5 MB
Last updated
over 4 years ago
docker pull nn200433/siyuan