From 3767a55bbea345e372593cde7448da4cb7000066 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=AA=E5=AD=90?= Date: Mon, 16 Dec 2024 10:44:53 +0800 Subject: [PATCH] Update Dockerfile --- Dockerfile | 57 ++++++++++++++++++------------------------------------ 1 file changed, 19 insertions(+), 38 deletions(-) diff --git a/Dockerfile b/Dockerfile index 7fa097e..84b6196 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,60 +1,41 @@ -# 基础镜像 -FROM elixir:1.14-alpine +FROM elixir:1.14.4-alpine # 使用较新版本的基础镜像 -# 构建参数 ARG PLEROMA_VER=develop ARG UID=911 ARG GID=911 ENV MIX_ENV=prod -# 添加 Alpine 源并安装依赖 -RUN echo "http://nl.alpinelinux.org/alpine/latest-stable/main" >> /etc/apk/repositories \ - && apk update \ - && apk upgrade \ - && apk add --no-cache \ - git \ - gcc \ - g++ \ - musl-dev \ - make \ - cmake \ - file-dev \ - exiftool \ - imagemagick \ - libmagic \ - ncurses \ - postgresql-client \ - ffmpeg +RUN apk update && apk upgrade && \ + apk add --no-cache \ + git gcc g++ musl-dev make cmake file-dev \ + exiftool imagemagick libmagic ncurses \ + postgresql-client ffmpeg -# 创建用户和组 -RUN addgroup -g ${GID} pleroma \ - && adduser -h /pleroma -s /bin/false -D -G pleroma -u ${UID} pleroma +RUN addgroup -g ${GID} pleroma && \ + adduser -h /pleroma -s /bin/false -D -G pleroma -u ${UID} pleroma -# 创建必要的目录并设置权限 ARG DATA=/var/lib/pleroma -RUN mkdir -p /etc/pleroma ${DATA}/uploads ${DATA}/static \ - && chown -R pleroma:pleroma /etc/pleroma ${DATA} +RUN mkdir -p /etc/pleroma ${DATA}/uploads ${DATA}/static && \ + chown -R pleroma:pleroma /etc/pleroma ${DATA} -# 切换到 pleroma 用户 USER pleroma WORKDIR /pleroma # 克隆 Pleroma 仓库并切换到指定版本 -RUN git clone -b stable https://git.pleroma.social/pleroma/pleroma.git . \ - && git checkout ${PLEROMA_VER} +RUN git clone -b stable https://git.pleroma.social/pleroma/pleroma.git . && \ + git checkout ${PLEROMA_VER} # 配置 Mix 并构建 Release -RUN echo "import Mix.Config" > config/prod.secret.exs \ - && mix local.hex --force \ - && mix local.rebar --force \ - && mix deps.get --only prod \ - && mix release --path /pleroma +RUN echo "import Mix.Config" > config/prod.secret.exs + +# 逐步安装依赖并构建 Release +RUN mix local.hex --force && \ + mix local.rebar --force && \ + mix deps.get --only prod && \ + mix release --path /pleroma -# 复制配置文件 COPY ./config.exs /etc/pleroma/config.exs -# 暴露端口 EXPOSE 4000 -# 设置入口点 ENTRYPOINT ["/pleroma/docker-entrypoint.sh"]