# 后端构建脚本 FROM --platform=linux/amd64 swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/eclipse-temurin:17-jre ENV LANG=C.UTF-8 ENV LC_ALL=C.UTF-8 ENV TZ=Asia/Shanghai ENV JAVA_OPTS="" ENV EASYFLOW_JAR_PATH=/app/artifacts/easyflow.jar ENV EASYFLOW_CONFIG_PATH=file:/app/application.yml ENV EASYFLOW_LOG_FILE=/app/logs/app.log ENV EASYFLOW_JAR_RESTART_GRACE_SECONDS=30 ENV NPM_CONFIG_REGISTRY=https://registry.npmmirror.com ENV PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple ENV PIP_TRUSTED_HOST=pypi.tuna.tsinghua.edu.cn WORKDIR /app RUN useradd --system --create-home easyflow && \ apt-get update && \ apt-get install -y --no-install-recommends \ ca-certificates \ curl \ gnupg && \ mkdir -p /etc/apt/keyrings && \ curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key -o /tmp/nodesource.gpg.key && \ gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg /tmp/nodesource.gpg.key && \ chmod 644 /etc/apt/keyrings/nodesource.gpg && \ printf "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_24.x nodistro main\n" > /etc/apt/sources.list.d/nodesource.list && \ rm -f /tmp/nodesource.gpg.key && \ apt-get update && \ apt-get install -y --no-install-recommends \ inotify-tools \ nodejs \ python3 \ python3-pip \ python3-venv \ tini && \ ln -sf /usr/bin/python3 /usr/local/bin/python && \ ln -sf /usr/bin/pip3 /usr/local/bin/pip && \ npm config set registry "${NPM_CONFIG_REGISTRY}" && \ printf "registry=%s\n" "${NPM_CONFIG_REGISTRY}" > /etc/npmrc && \ npm install -g pnpm@10.17.1 && \ pnpm config set registry "${NPM_CONFIG_REGISTRY}" && \ mkdir -p /etc/pip && \ printf "[global]\nindex-url = %s\ntrusted-host = %s\n" "${PIP_INDEX_URL}" "${PIP_TRUSTED_HOST}" > /etc/pip.conf && \ rm -rf /var/lib/apt/lists/* && \ mkdir -p /app/logs /app/artifacts /app/data && \ chown -R easyflow:easyflow /app COPY docker-entrypoint.sh /usr/local/bin/easyflow-entrypoint.sh RUN chmod 755 /usr/local/bin/easyflow-entrypoint.sh VOLUME ["/app/logs", "/app/data"] EXPOSE 8111 ENTRYPOINT ["/usr/bin/tini", "--", "/usr/local/bin/easyflow-entrypoint.sh"]