# 1. 基础镜像 FROM registry.fit2cloud.com/halo/halo-pro:2.21 # 2. 关键步骤:以 ROOT 身份预先创建目录并授权 # 必须先用 root 做这件事,因为 /data (在构建时) 对普通用户是只读的 USER root # 创建我们将要使用的工作目录 RUN mkdir -p /data/blog # 将该目录的所有权移交给用户 1000 (halo) # 这一步至关重要,否则切换用户后还是写不进去 RUN chown -R 1000:1000 /data/blog # 3. 设置环境变量 # 告诉 Halo 你的工作目录是刚才创建的那个 ENV HALO_WORK_DIR=/data/blog # 设置 HOME 目录,防止部分缓存文件写错地方 ENV HOME=/data/blog # 内存限制 ENV JVM_OPTS="-Xmx256m -Xms256m" # 4. 暴露端口 EXPOSE 8090 # 5. 最后切换到普通用户运行 USER 1000