ejz / Dockerfile
flzta's picture
Update Dockerfile
967edba verified
FROM alpine:latest
# 創建一個非 root 使用者
ARG USER_ID=1000
ARG GROUP_ID=1000
RUN addgroup -g $GROUP_ID appuser && \
adduser -u $USER_ID -G appuser -s /bin/sh -D appuser
WORKDIR /opt/app
ENV TZ=Asia/Shanghai
# 使用您提供的連結下載 app.zip
RUN apk update && \
apk add --no-cache wget unzip python3 py3-pip bash tar gzip jq curl zip && \
rm -rf /var/cache/apk/*
RUN curl -o app.zip "https://cloudreve.246801.xyz/f/pYfA/app.zip" && \
unzip app.zip
RUN mkdir -p /opt/app/data
# 您可能需要根據解壓縮後的目錄結構調整這行指令
# 通常解壓縮後會在一個名為 app 的目錄下或者直接包含執行檔
# 請檢查實際的目錄結構,並將 'app' 替換為編譯後的二進制檔案的完整路徑
RUN cp app /opt/app/app
# 設定 /opt/app 的擁有者為非 root 使用者
RUN chown -R appuser:appuser /opt/app
ENV VIRTUAL_ENV=/opt/venv
RUN python3 -m venv $VIRTUAL_ENV
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
RUN pip install --no-cache-dir requests webdavclient3
RUN pip install --upgrade webdavclient3
COPY sync_data.sh /opt/app/
RUN chown appuser:appuser /opt/app/sync_data.sh
RUN chmod +x /opt/app/sync_data.sh
USER appuser
EXPOSE 5212
CMD ["/bin/sh", "-c", "/opt/app/app -c /opt/app/config.ini & /opt/app/sync_data.sh"]